如何在不格式化的情况下序列化JObject?

141

我有一个 JObject(我正在使用Json.Net),它是用LINQ to JSON构造的(也由同一库提供)。当我在 JObject 上调用 ToString() 方法时,它以格式化的JSON输出结果。

我该如何将此设置为“无”格式?

3个回答

249

调用JObject的ToString(Formatting.None)方法。

或者,如果将该对象传递给JsonConvert.SerializeObject方法,则它将返回无格式的JSON。

文档: 使用JToken.ToString编写JSON文本


5
这是否意味着将JObject传递给SerializeObject是一个特殊情况?它不会像处理普通的C#类并尝试序列化内部一样,而是执行类似于jObject.ToString(...)的操作吗? - Adrian Ratnapala

52

你也可以这样做:

string json = myJObject.ToString(Newtonsoft.Json.Formatting.None);

51
这与上面的James建议有什么不同? James没有包含完整的命名空间引用,而你做了 - 除此之外,代码是相同的,对吗? - Jazimov
5
@Jazimov,它们是相同的。这是因为James的回答在2014年被编辑过。当Simpu在2010年发表这个答案时,James的早期帖子是关于SerializeObject而不是ToString()的格式化参数(您可以在答案的编辑历史记录中看到). - Leon Lucardie

21

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接