转换属性名称中包含非法字符的JSON



预先;我使用的是旧版本的Newtonsoft.Json(4.0.8.0).

因此,我正在尝试为Web服务器应用程序编写一个.NET客户端。为了将所有传入的数据包从json结构转换为.NET对象,我使用了带有内置函数JToken.ToObject的json序列化程序。这要求target.net类具有与传入json数据完全相同的所需属性。

现在,我遇到了一个数据包,它包含C#范围内的无效属性名(我认为是.NET)。它看起来像这样。

"12345" : {
  "Name1/Part2": {}
  "Name2/Part2": {}
  "Name3/Part2": {}
  "Name4/Part2": {}
  "Name5/Part2": {}
}

相等的.net代码将是.

class DataPacket {
  public DummyObject 12345 {get; set;}

  public class DummyObject {
    public object Name1/Part2 {get; set}
    public object Name2/Part2 {get; set}
    public object Name3/Part2 {get; set}
    public object Name4/Part2 {get; set}
    public object Name5/Part2 {get; set}
  }
}

其中,所有属性名称都是非法的("用数字开头"、"非法字符->/")。

知道我如何用Newtonsoft的Major 4版本解决这个问题吗?

非常感谢

我相信您可以使用jsonproperty属性,因此对于第一个属性,类似于:

class DataPacket{
                    [JsonProperty(PropertyName="1234")]
                    public DummyObject OneTwoThreeFour {get;set;}//or whatever you want to name.
                }

对每个需要转换的具有非法名称的json属性执行此操作

相关内容

  • 没有找到相关文章

最新更新