我正在收到一个类似于下面示例的JSON对象。
{
“NAME1”:{ “name1a”: “value1a”, “name1b”: “value1b”},
“NAME2”:{ “name2a”: “value2a”, “name2b”: “value2b”}
}
我为它设置了一个数据合约(因为我现在只需要访问一个数据字段),就像这样。
[DataContract]
public class MyThingy
{
[DataMember(Name="name1b")]
public string Name1b { get; set; }
public MyThingy() { }
public MyThingy(String name1b)
{
Name1b = name1b;
}
}
当我序列化对象时,我尝试将其打印出来(这是有效的,因为我得到了类的字符串描述),然后是字段Name1b
。最后一部分不起作用,我在那里null
。我的猜测是我必须错误地映射数据合同,但我看不出如何纠正它。
如何宣布MyThingy
类?
我的JSON对象是按照this post中所述提取的。
答案 0 :(得分:0)
我会在这里使用JavaScriptSerializer,
string json = @"{
""name1"":{""name1a"":""value1a"",""name1b"":""value1b""},
""name2"":{""name2a"":""value2a"",""name2b"":""value2b""}
}";
var obj = new JavaScriptSerializer()
.Deserialize<Dictionary<string, Dictionary<string, string>>>(json);
Console.WriteLine(obj["name1"]["name1b"]);
您还可以同时使用Json.Net和dynamic
dynamic obj = JsonConvert.DeserializeObject(json);
Console.WriteLine(obj.name1.name1b);