如何格式化Json输出?

时间:2011-11-24 07:02:45

标签: c# json web-services rest

我的网络服务响应有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?

3 个答案:

答案 0 :(得分:23)

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

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:-1)

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

我还习惯使用此网站格式化和验证任何JSON:JSON Formatter