我正在努力构建一个复杂的JSON对象,这就是我想要的:
{"name": [ "failed","complete"], "data": ["failed":[1, 2, 3], "completed": [1, 2, 3]}
我想在C#类中将其转换为属性。必须与失败的属性和int列表建立连接。输出必须是:
失败:1,2,3 完成:1,2,3
像这样的JSON对象的正确语法是什么?我怎样才能在c#中声明这个对象的属性?
我在考虑字典,但也许有更好的方法?
亲切的问候
答案 0 :(得分:2)
我认为应该是:
{"name": [ "failed","complete"], "data": {"failed":[1, 2, 3], "completed": [1, 2, 3]}}
然后你可以使用:
public class Data {
public List<int> failed { get; set; }
public List<int> completed { get; set; }
}
public class RootObject {
public List<string> name { get; set; }
public Data data { get; set; }
}
对于任何json到c#,我使用: json2csharp.com
修改强> 我认为,对你的案例更好的方法是使用字典和下面的类:
public class DataValues {
public List<int> Data;
}
然后像:
一样使用它Dictionary<string, DataValues> x = new Dictionary<string, DataValues>();
x.Add("failed", new DataValues() {
Data = new List<int> { 1, 2, 3 }
});
x.Add("complete", new DataValues() {
Data = new List<int> { 1, 2, 3 }
});
var resultinJson = new JavaScriptSerializer().Serialize(x);
然后,Json的结果是:
{
"failed": {
"Data": [1, 2, 3]
},
"complete": {
"Data": [1, 2, 3]
}
}
显然,您可以在status
中添加更多step
或app.
或其中的内容。