如何在C#.NET(win7手机)中使用’DataContractJsonSerializer’读入’嵌套’Json文件?

我有一个问题,如果我的json文件看起来像这样

{“Numbers”:“45387”,“Words”:“space buckets”}

我可以读得很好,但如果它看起来像这样:

{“Main”:{“Numbers”:“45387”,“Words”:“space buckets”},
“Something”:{“Numbers”:“12345”,“Words”:“Kransky”}}

我没有收到任何信息。 我不知道如何在Main和Something之间切换! 使用此代码加载带有此“嵌套”信息的JSON,

var ser = new DataContractJsonSerializer(typeof(myInfo)); var info = (myInfo)ser.ReadObject(e.Result); 

//用于保存我的信息的类

 [DataContract] public class myInfo { [DataMember(Name="Numbers")] public int number { get; set; } [DataMember(Name="Words")] public string words { get; set; } } 

导致类返回空。
我已经尝试将组名添加到DataContract,例如。 [DataContract,Name =“Main”]但这仍然导致类值为空。
我也尝试将“main”添加到序列化器overloader,例如。 var ser = new DataContractJsonSerializer(typeof(myInfo),“Main”);
这会导致错误:期望元素’Main’来自命名空间”..遇到’Element’,名称为’root’,命名空间”。
我更喜欢使用提供的json阅读器。 我已经研究过json.NET,但是发现编写json和sparse有关读取信息的文档很重要。 当然,我在这里错过了一些简单的东西!

你可以添加一个包装类:

 [DataContract] public class Wrapper { [DataMember] public myInfo Main { get; set; } [DataMember] public myInfo Something { get; set; } } 

现在,您可以将JSON反序列化回此包装类,并使用这两个属性来访问这些值。