gpt4 book ai didi

c# - 从 MVC 3 JsonResult 获取美化的 JSON

转载 作者:太空狗 更新时间:2023-10-29 20:50:35 24 4
gpt4 key购买 nike

上下文
语言:C#
平台版本:Microsoft .Net Framework 4.0
操作系统:Windows 7 专业版(64 位)
约束:Microsoft MVC.Net 3.0

问题
这些天我发现自己经常在浏览器中查看 JSON,将浏览器指向我本地开发服务器上的一个或另一个 Controller 操作,并以可视化方式解析 JSON 以确保一切都按照我们想要的方式进行格式化。 MVC 3 序列化器(或 JSON.Net 序列化器)返回的 JSON 总是返回一个缩小的字符串,所以我最终得到这样的东西:

{"Bars":[{"Name":"Ghost Bar","Address":"2440 Victory Park Lane, 33rd Floor, Dallas, TX 75219","OpenDate":"\/Date(1208062800000)\/","Status":"Open"},{"Name":"M-Street Bar","Address":"5628 Sears Street, Dallas, TX 75206","OpenDate":"\/Date(1064811600000)\/","Status":"Closed"},{"Name":"Zephyr\u0027s Lounge","Address":"3520 Greenville Avenue, Dallas, TX 75206","OpenDate":"\/Date(981007200000)\/","Status":"Open"}]}

问题
我真的很想找到一种方法,至少在调试期间,让 JsonResult 得到“美化”,使其看起来更像这样:

{
"Bars": [
{
"Name": "Ghost Bar",
"Address": "2440 Victory Park Lane, 33rd Floor, Dallas, TX 75219",
"OpenDate": "\/Date(1208062800000)\/",
"Status": "Open"
},
{
"Name": "M-Street Bar",
"Address": "5628 Sears Street, Dallas, TX 75206",
"OpenDate": "\/Date(1064811600000)\/",
"Status": "Closed"
},
{
"Name": "Zephyr\u0027s Lounge",
"Address": "3520 Greenville Avenue, Dallas, TX 75206",
"OpenDate": "\/Date(981007200000)\/",
"Status": "Open"
}
]
}

我知道 several online tools这将让您粘贴和格式化 JSON。这是一个额外的步骤,并且花费了我很多时间。我更喜欢编程解决方案。我还希望能够通过配置或 #if 编译器指令打开/关闭它。

我已经对此进行了粗略搜索并遇到了 this post on Stack Overflow .但是,给出的代码示例非常不完整。还提供了几个链接,但它们似乎已失效。

无论如何,我想找到一种从 ActionResult 中获取“美化”JSON 的方法。感谢任何帮助。

以下源代码将重现我作为示例给出的初始未美化的 JSON 字符串。随意复制/粘贴/编辑。

using System.Collections.Generic;
using System.Text;
using System.Web.Mvc;

namespace PrettyJsonResult.Controllers
{
public class DefaultController : Controller
{
public JsonResult Index()
{
var foo = new Foo();
foo.Bars.Add(new Bar { Address = "2440 Victory Park Lane, 33rd Floor, Dallas, TX 75219", Name = "Ghost Bar", Status = "Open" });
foo.Bars.Add(new Bar { Address = "5628 Sears Street, Dallas, TX 75206", Name = "M-Street Bar", Status = "Closed" });
foo.Bars.Add(new Bar { Address = "3520 Greenville Avenue, Dallas, TX 75206", Name = "Zephyr's Lounge", Status = "Open" });

return Json(foo, "application/json", Encoding.UTF8, JsonRequestBehavior.AllowGet);
}

}

public class Foo
{
public Foo()
{
Bars = new List<Bar>();
}

public List<Bar> Bars { get; set; }
}

public class Bar
{
public string Name { get; set; }
public string Address { get; set; }
public string Status { get; set; }
}
}

最佳答案

答案不多,但如果您将 Json 序列化器从内置序列化器 (JavaScriptSerializer) 切换到 Json.NET (除了这个问题之外还有一堆 advantages),你可以这样做:

JsonConvert.SerializeObject( myObjectDestinedForJSON, Formatting.Indented);

有关设置的文档:http://james.newtonking.com/projects/json/help/

关于c# - 从 MVC 3 JsonResult 获取美化的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9898869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com