{
          "prefecture": [
            {
              "albums": {
                "album": [
                  {
                    "episodes": {  
                      "episode": {  "something": 1 } 
                                }
                  },
                  {
                    "episodes": {
                      "episode": [{"something":2 },  {"something":3} ]
                                }
                  }
                  ]
               }
              }
             ]
             }纠结的是episodes那个地方, 反序列化得类是写成 class Episodes { public Episode episode;} 还是
class Episodes { public List<Episode> episode;} 好像都不行啊!!一个有list,一个又没有!怎么办呢??
      

解决方案 »

  1.   

    "episode": { "something": 1 }  
    -------------------------------------------------
    "episode": [{"something":2 }, {"something":3} ]这个json,手写的吗?怎么序列化能得到这样的东东。
      

  2.   


    是手写的, 想要表达是:  给我的json字符串中, episode后有些是[]的list, 有些又没有!
    那么我怎么构造相应的episodes类来反序列化??
      

  3.   


    就是episode后 出现了不一样的状况, 写不出一个统一的类来反序列化。。
    有办法么??
      

  4.   

    还是上图吧,jsonview的结果:
      

  5.   

    "episode": [{ "something": 1 }]都统一成List吧
      

  6.   


    "episode": { "something": 1 }
    -------------------------------------------------
    "episode": [{"something":2 }, {"something":3} ]这两个本身就不是一个东东,一个相当于是个体,另一个是多个个体(集合)这种情况当然没有办法反序列化把个体变成集合的一种情况即可, 即集合中只有一个元素
      

  7.   

    你用的微软自带的还是Json.net
    试试 
    class Episodes 

        private List<Episode> _episode
        public List<Episode> episode
        {
           get{return _episode;}
           set{
              if(value is Episode)
                   value = new List<Episode>(){value };
              _episode = value;
          }
        }
    }
      

  8.   


    那这个episodes类怎么写呢??还是不太懂啊!
      

  9.   


    json字符串没法改啊,是服务器传过来的。。
      

  10.   


    用的是DataContractJsonSerializer
    你这段代码还是不能解决我的问题啊!
      

  11.   


    "episode": { "something": 1 }
    写成 "episode": [{"something":1 }]
      

  12.   


    额,json字符串是服务器传过来。
    结构远比这个复杂,不是一下就能改的,
    可以考虑正则表达式不??
      

  13.   

    如果 你不能在构建 json字符串的时候 更改,那就只能在 接收以后处理可以考虑通过正则 将"episode": { "something": 1 }变成 "episode": [{"something":1 }]