预先;我使用的是旧版本的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属性执行此操作