字符串序列化中的 NewtonSoft JSON


给定一个 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;

相关内容

  • 没有找到相关文章

最新更新