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();