Windows phone 8 如何将多级json数据转换为C对象?

Windows phone 8 如何将多级json数据转换为C对象?,windows-phone-8,Windows Phone 8,我知道json有几个问题,但对我来说完全不同。我的问题 如何将此jsonString转换为c对象。我试过好几次了。这个意想不到的问题使我很沮丧。我需要知道我有什么问题,我应该怎么做 { 现状:200, 状态信息:成功, 数据:[ { 警报和警报:[ { 0: 1, 1:警报和警报1, 2: 0, id:1, 名称:报警和警报1, islock:0 }, { 0: 6, 1:警报和警报6, 2: 0, id:6, 名称:报警和警报6, islock:0 } ] }, { 动物:[ { 0: 7,

我知道json有几个问题,但对我来说完全不同。我的问题 如何将此jsonString转换为c对象。我试过好几次了。这个意想不到的问题使我很沮丧。我需要知道我有什么问题,我应该怎么做

{ 现状:200, 状态信息:成功, 数据:[ { 警报和警报:[ { 0: 1, 1:警报和警报1, 2: 0, id:1, 名称:报警和警报1, islock:0 }, { 0: 6, 1:警报和警报6, 2: 0, id:6, 名称:报警和警报6, islock:0 } ] }, { 动物:[ { 0: 7, 1:鸟, 2: 0, id:7, 名字:伯德, islock:0 }, { 0: 13, 1:有趣的动物, 2: 0, id:13, 名称:有趣的动物, islock:0 } ] }, { Dj:[ { 0: 14, 1:Dj 1, 2: 0, 身份证号码:14, 姓名:Dj 1, islock:0 }, { 0: 15, 1:Dj 2, 2: 0, 身份证号码:15, 姓名:Dj 2, islock:0 }, { 0: 18, 1:Dj 5, 2: 0, 身份证号码:18, 姓名:Dj 5, islock:0 } ] }, { 说唱乐:[ { 0: 71, 1:Rap铃声1, 2: 0, 身份证号码:71, 姓名:Rap铃声1, islock:0 }, { 0: 77, 1:Rap铃声7, 2: 0, id:77, 姓名:Rap铃声7, islock:0 } ] } ] }

我的班级:

public  class Category
    {
        public string __invalid_name__0 { get; set; }
        public string id { get; set; }
        public string __invalid_name__1 { get; set; }
        public string name { get; set; }
        public string __invalid_name__2 { get; set; }
        public string islock { get; set; }
    }

public  class CategoryCollection
    {
      public List<Category> CategoryRingtone { get; set; }
    }

public  class RootObject
    {
        public int status { get; set; }
        public string status_messages { get; set; }
        public List<CategoryCollection> data { get; set; }
    }

categoriesJsonString = await Downloader.LoadCategoriesFromServer();
            RootObject rootObject = new RootObject();
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(categoriesJsonString));
            DataContractJsonSerializer ser = new DataContractJsonSerializer(rootObject.GetType());
            rootObject = ser.ReadObject(ms) as RootObject;
            ms.Close(); 

复制并粘贴json将表明它无效。一个好的开始是使用有效的json。如果你能说出你到底有什么问题,这也会有帮助。意外的问题是什么?我已经将我的json编辑为有效,实际上我将简明的json字符串缩短为便于阅读。谢谢你,如果你能说出这个神秘的意外问题到底是什么,也许有人会帮你。CategoryRingtone列表是否始终为空?它会给你错误吗?哪一个还是什么?是的,这就是问题所在。CategoryRingtone列表总是空的。感谢所有伸出手来帮助我的人。问题解决了。
public class AlarmAndAlert
{
    public string __invalid_name__0 { get; set; }
    public string __invalid_name__1 { get; set; }
    public string __invalid_name__2 { get; set; }
    public string id { get; set; }
    public string name { get; set; }
    public string islock { get; set; }
}

public class Animal
{
    public string __invalid_name__0 { get; set; }
    public string __invalid_name__1 { get; set; }
    public string __invalid_name__2 { get; set; }
    public string id { get; set; }
    public string name { get; set; }
    public string islock { get; set; }
}

public class Dj
{
    public string __invalid_name__0 { get; set; }
    public string __invalid_name__1 { get; set; }
    public string __invalid_name__2 { get; set; }
    public string id { get; set; }
    public string name { get; set; }
    public string islock { get; set; }
}

public class Rap
{
    public string __invalid_name__0 { get; set; }
    public string __invalid_name__1 { get; set; }
    public string __invalid_name__2 { get; set; }
    public string id { get; set; }
    public string name { get; set; }
    public string islock { get; set; }
}

public class Datum
{
    public List<AlarmAndAlert> __invalid_name__Alarm And Alert { get; set; }
    public List<Animal> Animal { get; set; }
    public List<Dj> Dj { get; set; }
    public List<Rap> Rap { get; set; }
}

public class RootObject
{
    public int status { get; set; }
    public string status_messages { get; set; }
    public List<Datum> data { get; set; }
}