Newton Json反序列化数组数组

时间:2014-06-04 10:05:13

标签: c# json json.net

您好我无法使用newtonsoft desrializeobject将一些JSON反序列化为c#.net类

示例JSON

[
    [
        {
            "id": "1",
            "Colour": "Red"
        },
        {
            "cid": "1",
            "Shape": "Square"
        },
        {
            "cid": "2",
            "Shape": "Circle"
        }
    ]
]

我希望这个出现在我的C#.net类中,这样可以解释拼写错误和语法,但是你会得到一般的想法。

public class object {

 public int id;
 public string colour;
 public Shape[] shapes;

}

public class Shape {
  public int cid;
  public string shapename;
}

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

请在此处查看我的答案:

json serialize list in list

您应该首先创建一个RootObject。这代表了第一个List。 RootObject包含一个带有Shape类的List

您还可以指定[JsonProperty]注释,以确保将正确的Json属性映射到Shape对象。

答案 1 :(得分:0)

基本上,这不是班级序列化的内容。如果您将该JSON粘贴为Visual Studio中的类,则可以得到:

public class Rootobject
    {
        public Class1[][] Property1 { get; set; }
    }

    public class Class1
    {
        public string id { get; set; }
        public string Colour { get; set; }
        public string cid { get; set; }
        public string Shape { get; set; }
    }

所以问题是JSON。如果那不是您的JSON,并且您无法修改其格式,我首先将其序列化为动态对象,然后进行必要的转换。