给定一个 JSON 字符串列表
,是否可以将列表转换为 JSON,而序列化程序不会认为 JSON 字符串是普通的旧字符串。使用 NewtonSoft .NET
用:
List<string> list = { "{"foo": "bar"}", "[ 1, 2, 3]", "{"biz": "baz", "fiz": ["a", "b", "c"]}";
String json = JsonConvert.SerializeObject(list, Formatting.Indented);
目前,我从json
那里得到了这样的东西:
"[ nr "{"foo": "bar"}", nr "[ 1, 2, 3]", ...]"
序列化程序将 json 字符串视为具有特殊格式的任何其他字符串。我想要更多这样的东西:
"[
{
"foo": "bar"
},
[
1,
2,
3
],
{
"biz": "baz",
"fiz": [
"a",
"b",
"c"
]
}
]"
类似的东西,有适当的缩进。
这里的想法是使用 Json.NET API自己构建JSON,而不是手动编写。为此,您可以使用 JToken 存储原始 json 字符串,然后将结果包装在 JArray 中。完成后,可以使用 ToString 方法将所有内容序列化回 JSON。
var finalString = new JArray(list.Select(JToken.Parse).ToArray()).ToString();
使用这个:
JsonSerializer serializer = new JsonSerializer();
serializer.Formatting = Formatting.Indented;