static void Main(string[] args)
{
var json = @"{ ""rows"": [
[
{
""colspan"": 4,
""id"": ""ContentPanel1""
},
{
""colspan"": 8,
""id"": ""ContentPanel2""
}
],
[
{
""colspan"": 12,
""id"": ""ContentPanel3""
}
]
]}";
var json_serializer = new JavaScriptSerializer();
var jsonData = json_serializer.Deserialize<Grid>(json);
Console.ReadKey();
}
[Serializable]
public class Grid
{
public List<Row> rows { get; set; }
}
[Serializable]
public class Row
{
public int colspan { get; set; }
public int id { get; set; }
public List<Row> rows { get; set; }
}
我正在尝试将此JSON字符串转换为C#对象,但我发现它很难,因为错误消息不是很直观。任何JSON投注者请帮忙!
ERROR类型'ConsoleApplication1.Program + Row'不支持反序列化数组。
答案 0 :(得分:4)
首先我们得到:
阵列的反序列化不支持“行”类型。
[ [
的JSON显示嵌套数组。因此,要么更改JSON,要么rows
成为Row[][]
:
public Row[][] rows { get; set; }
现在我们得到:
ContentPanel1不是Int32的有效值。
以及...
public int id { get; set; }
VS
""id"": ""ContentPanel1""
现在:"ContentPanel1"
不是int
。将id
设为string
:
public string id { get; set; }