NewtonSoft JSON 在字符串序列化中
NewtonSoft JSON within strings serialization
给定一个 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
:
得到了类似的信息
"[ \n\r "{"foo": "bar"}", \n\r "[ 1, 2, 3]", ...]"
序列化程序将 json 字符串视为具有特殊格式的任何其他字符串。
我想要更多这样的东西:
"[
{
"foo": "bar"
},
[
1,
2,
3
],
{
"biz": "baz",
"fiz": [
"a",
"b",
"c"
]
}
]"
适当缩进的类似内容。
使用这个:
JsonSerializer serializer = new JsonSerializer();
serializer.Formatting = Formatting.Indented;
这里的想法是使用 Json.NET API 自己构建 JSON 而不是手写。为此,您可以使用 JToken 来存储原始 json 字符串,然后将结果包装在 JArray 中。完成后,您可以使用 ToString 方法将所有内容序列化回 JSON。
var finalString = new JArray(list.Select(JToken.Parse).ToArray()).ToString();
给定一个 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
:
"[ \n\r "{"foo": "bar"}", \n\r "[ 1, 2, 3]", ...]"
序列化程序将 json 字符串视为具有特殊格式的任何其他字符串。 我想要更多这样的东西:
"[
{
"foo": "bar"
},
[
1,
2,
3
],
{
"biz": "baz",
"fiz": [
"a",
"b",
"c"
]
}
]"
适当缩进的类似内容。
使用这个:
JsonSerializer serializer = new JsonSerializer();
serializer.Formatting = Formatting.Indented;
这里的想法是使用 Json.NET API 自己构建 JSON 而不是手写。为此,您可以使用 JToken 来存储原始 json 字符串,然后将结果包装在 JArray 中。完成后,您可以使用 ToString 方法将所有内容序列化回 JSON。
var finalString = new JArray(list.Select(JToken.Parse).ToArray()).ToString();