JSON序列化时如何使用JavaScriptSerializer设置格式?
我正在使用 JavaScriptSerializer 将文件中的对象序列化为 JSON 格式。但结果文件没有可读的格式。如何允许格式化以获得可读文件?
I am using JavaScriptSerializer for serializing objects to the file to the JSON format. But the result file has no readable formatting. How can I allow formating to get a readable file?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用 JSON.NET 序列化器,它支持 JSON 格式,
您可以下载 此包 通过 NuGet。
You could use JSON.NET serializer, it supports JSON formatting
Yon can download this package via NuGet.
这是我的解决方案,不需要使用 JSON.NET,并且比 Alex Zhevzhik 链接的代码更简单。
这是格式化程序
Here's my solution that does not require using JSON.NET and is simpler than the code linked by Alex Zhevzhik.
and here is the formatter
我还希望能够在不依赖第三方组件的情况下格式化 JSON。 Mark Lakata 的解决方案效果很好(感谢 Mark),但我希望括号和制表符与 Alex Zhevzhik 的链接中的一样。因此,这是 Mark 代码的调整版本,以这种方式工作,以防其他人想要它:
I also wanted to be able to have formatted JSON without relying on a third-party component. Mark Lakata's solution worked well (thanks Mark), but I wanted the brackets and tabbing to be like those in Alex Zhevzhik's link. So here's a tweaked version of Mark's code that works that way, in case anyone else wants it:
似乎没有内置工具用于格式化 JSON 序列化器的输出。
我想发生这种情况的原因是最大限度地减少了我们通过网络发送的数据。
您确定需要在代码中格式化数据吗?或者您想在调试期间分析 JSON?
有很多在线服务提供此类功能:1、2。
或独立应用程序:JSON 查看器。
但如果您需要在应用程序内部进行格式化,您可以编写适当的代码 靠你自己。
It seemed to be that there is no built-in tool for formatting JSON-serializer's output.
I suppose the reason why this happened is minimizing of data that we send via network.
Are you sure that you need formatted data in code? Or you want to analize JSON just during debugging?
There is a lot of online services that provide such functionality: 1, 2.
Or standalone application: JSON viewer.
But if you need formatting inside application, you can write appropriate code by yourself.
关于
非常感谢 - 它很有用。或者,要使用空间,它对我有用:
stringBuilder.Append('\t', ...
替换为
FormatOutput_NewLine(stringBuilder, ...
About
Thanks a lot - it's useful. Alternatively, to use space, it worked for me:
stringBuilder.Append('\t', ...
to replace with
FormatOutput_NewLine(stringBuilder, ...