【发布时间】:2016-08-20 12:04:36
【问题描述】:
我正在使用 json.net 将对象序列化为 json 字符串。现在我有一个我喜欢序列化为 Json 数组的对象列表。但是,我无法用 json.net 做到这一点,希望有人能指出我的错误。
我有以下课程:
class PeopleList {
public Person inputs { get; set; }
}
class Person {
public String name { get; set; }
public int age { get; set; }
}
我正在使用以下代码来序列化对象:
var json = new List<PeopleList>();
Person p1 = new Person { name = "Name 1", age = 20 };
json.Add(new PeopleList { inputs = p1 });
Person p2 = new Person { name = "Name 2", age = 30 };
json.Add(new PeopleList { inputs = p2 });
string jsonString = JsonConvert.SerializeObject(json, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.Indented });
这给了我以下输出:
[
{
"inputs": {
"name": "Name 1",
"age": 20
}
},
{
"inputs": {
"name": "Name 2",
"age": 30
}
}
]
这是我真正想要的:
[
{
"inputs": [
{
"name": "Name 1",
"age": 20
}
]
},
{
"inputs": [
{
"name": "Name 2",
"age": 30
}
]
}
]
如您所见,我需要用 [] 封装列表中的每个对象。如何使用 Json.net 实现这一目标?谢谢!
【问题讨论】:
-
如果您希望
inputs也成为 JSON 中的数组,请将其制作为列表或数组
标签: c# arrays json serialization json.net