2015-01-08 104 views
-2

鉴于JSON字符串的列表,可以将List转换为JSON,而序列化程序不会认为JSON字符串是普通的旧字符串。使用.NET NewtonSoft字符串序列化中的NewtonSoft JSON

使用:

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" 
       ] 
    } 
]" 

类似的东西有正确的缩进。

+0

绝对不清楚你在问什么。请澄清你的问题。 –

+0

这是关于字符串格式的东西吗?它如何与JSON相关? –

+0

检查JsonSerializer.Formatting – DrKoch

回答

1

这里的想法是使用Json.NET API,而不是用手写它来构建自己的JSON。为此,您可以使用JToken来存储原始的json字符串,然后将结果包装到JArray中。完成后,您可以使用ToString方法将所有内容序列化回JSON。

var finalString = new JArray(list.Select(JToken.Parse).ToArray()).ToString(); 
+0

谢谢你的回答。我结束了使用JRaw包装,但我不会想到如果没有回应。 – laazer

0

使用此:

JsonSerializer serializer = new JsonSerializer(); 
serializer.Formatting = Formatting.Indented; 
相关问题