如何格式化Json输出?

我的Web服务响应有mimetype:“application / json”和我的JSON输出没有间距,像这样

1

{"Data":{"Item":"123","Timestamp":"2011-11-24T17:50:43"}} 

当JSON应该像这样输出

2

 { "Data":{ "Item":"123", "Timestamp":"2011-11-24T17:50:43" } } 

有什么方法可以修复JSON格式,所以它看起来像#2?

我不会更改Web服务写出的格式,但如果您想将其格式化以用于诊断目的,您可以使用Json.NET非常简单地执行此操作:

 JObject json = JObject.Parse(text); string formatted = json.ToString(); 

结果自动格式化。 您可以将其放入一个小工具 – 桌面工具或某个网页。 (如果已经有在线JSON格式化器,我不会感到惊讶,尽管显然你需要小心格式化敏感数据。)

如果你的json的根元素是一个数组,Jon的答案似乎不起作用。 使用JToken而不是JObject为我修复了这个问题。 作为字符串的扩展方法,它看起来像:

 public static string FormatJson(this string json) { return JToken.Parse(json).ToString(); } 

如果你从Firefox调用你的服务,这个漂亮的插件将为你美化JSON: JSONView

我也习惯使用这个网站来格式化和validation任何JSON: JSON Formatter