【问题标题】:Deserialize JSON that was serialized with Newtonsoft CamelCasePropertyNamesContractResolver反序列化使用 Newtonsoft CamelCasePropertyNamesContractResolver 序列化的 JSON
【发布时间】:2017-01-26 20:02:20
【问题描述】:

工作中使用的一个人:

var s = new JsonSerializerSettings();
s.ContractResolver = new CamelCasePropertyNamesContractResolver();

要创建一些 JSON,但现在我必须反序列化为不使用驼峰式大小写的对象,而不使用(共享)模型中的注释。型号不使用驼色箱。

他使用 Javascript,所以对他来说没什么大不了的,但我在 C# 领域。

CamelCasePropertyNamesContractResolver 是否存在“反向”?我没有看到没有注释的方法。

【问题讨论】:

  • 如果您使用 Json.NET 进行反序列化,那么它应该可以正常工作,因为 Json.NET 的反序列化代码会将 JSON 属性名称与 c# 属性名称进行不区分大小写的匹配。你真的有一个不起作用的案例吗?你能把你的问题扩展成minimal reproducible example吗?
  • 它应该自动工作,如果不是,你也可以使用属性属性,如JsonProperty

标签: c# json annotations deserialization camelcasing


【解决方案1】:

输入 Json 看起来像 “数据范围”:{ “类型”:4, “客户 ID”:2, “区域 ID”:1, "areaName": "模拟器区域", “单位标识”:1, "unitName": "Sim-A0B0", “车轮位置”:1 },等等等等。

目标对象如:

public class DataScope
{
    public int Type { get; set; }
    public int ClientId { get; set; }
    public string ClientName { get; set; }
    etc

Mohit 是对的,它不区分大小写。问题原来是我忘记了我的成员上的public 量词。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多