我的C#服务正在使用"模糊"从外部服务接收对象。格式如下:
{
"member": {
"<dynamicProperty>": {
"value":"some_string",
"score": 10
}
}
此属性&#34;&#34;可以针对每个对象进行更改,但我没有针对其可能值进行定义和限制的列表,当然我无法更改此格式。
有人知道Json.NET或其他一些Json .NET序列化程序是否可以帮助我并允许我定义下面的Member
和DynamicProperty
类,我可以使用它来进行简单的反序列化?< / p>
class Member
{
[JsonProperty(PropertyName= "??")] // what should I put here?
public DynamicProperty { get; set; }
}
class DynamicProperty
{
public string value;
public int score;
}
由于
答案 0 :(得分:6)
您可以使用Dictionary<string, object>
class Member
{
public Dictionary<string, object> { get; set; }
}
或者,您可以使用JsonExtensionData
属性:
class Member
{
[JsonExtensionData]
public Dictionary<string, JToken> { get; set; }
}
答案 1 :(得分:0)
我是这样做的。像这样输入数据:
O(N Log²N)
这是上面Yuval示例中的类:
var data1 = JsonConvert.DeserializeObject<JSONX>(readJSON);
像这样拉出键和值:
class recordxy
{
[JsonExtensionData]
public Dictionary<string, object> DataItems { get; set; }
}