相关疑难解决方法(0)

如何告诉全局Json.Net将StringEnumConverter应用于所有枚举

我希望使用json.net将枚举反序列化为其字符串表示形式,反之亦然.我可以想出告诉框架应用它的唯一方法StringEnumConverter是注释有问题的属性,如下所示:

[JsonConverter(typeof(StringEnumConverter))]
public virtual MyEnums MyEnum { get; set; }
Run Code Online (Sandbox Code Playgroud)

但是,在我的用例中,全局配置json.net会更方便,所有枚举都使用它进行序列化StringEnumConverter,而不需要额外的注释.

有没有办法这样做,例如在自定义的帮助下JsonSerializerSettings

.net c# json json.net

83
推荐指数
5
解决办法
4万
查看次数

复杂类型在ApiController参数中变为null

我不知道为什么我的参数"ParametroFiltro Filtro"变为空,其他参数"page"和"pageSize"正常.

public class ParametroFiltro
{
    public string Codigo { get; set; }
    public string Descricao { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的ApiController获取方法:

public PagedDataModel<ParametroDTO> Get(ParametroFiltro Filtro, int page, int pageSize)
Run Code Online (Sandbox Code Playgroud)

我的ajax电话:

var fullUrl = "/api/" + self.Api;
$.ajax({
    url: fullUrl,
    type: 'GET',
    dataType: 'json',
    data: { Filtro: { Codigo: '_1', Descricao: 'TESTE' }, page: 1, pageSize: 10 },
    success: function (result) {
        alert(result.Data.length);
        self.Parametros(result.Data);
    }
});
Run Code Online (Sandbox Code Playgroud)

c# ajax json asp.net-web-api

51
推荐指数
2
解决办法
5万
查看次数

如何在.NET中自定义JSON枚举的反序列化?

我有以下示例C#代码,它们使用svcutils.exe应用程序从xsd自动生成.

    [DataContract]
    public enum Foo
    {
        [EnumMember(Value = "bar")]
        Bar = 1,

        [EnumMember(Value = "baz")]
        Baz = 2
    }

    [DataContract]
    public class UNameIt
    {
        [DataMember(Name = "id")]
        public long Id { get; private set; }

        [DataMember(Name = "name")]
        public string Name { get; private set; }

        [DataMember(Name = "foo")]
        public Foo Foo { get; private set; }
    }
Run Code Online (Sandbox Code Playgroud)

以下是单元测试,尝试将示例JSON文档反序列化为UNameIt类.

    [TestClass]
    public class JsonSerializer_Fixture
    {
        public const string JsonData = @"{ ""id"":123456,
                                           ""name"":""John Doe"",
                                           ""foo"":""Bar""}";

        [TestMethod]
        public void DataObjectSimpleParseTest()
        {
            DataContractJsonSerializer …
Run Code Online (Sandbox Code Playgroud)

c# wcf json xsd datacontractserializer

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×3

json ×3

.net ×1

ajax ×1

asp.net-web-api ×1

datacontractserializer ×1

json.net ×1

wcf ×1

xsd ×1