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

Hug*_*ugo 81 serialization json json.net

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

如何为此设置格式为"无"?

Jam*_*ing 155

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

或者,如果将对象传递给JsonConvert.SerializeObject方法,它将返回JSON而不进行格式化.

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

  • 这是否意味着将`JObject`传递给`SerializeObject`是一种特殊情况?而不是将`JObject`视为普通的C#类并尝试序列化内部,而是执行类似`jObject.ToString(...)`的操作? (4认同)

小智 34

你也可以做以下事情;

string json = myJObject.ToString(Newtonsoft.Json.Formatting.None);
Run Code Online (Sandbox Code Playgroud)

  • 这与詹姆斯的上述建议有什么不同?James没有包含完整的命名空间引用,你做了 - 否则代码是相同的,不是吗? (31认同)
  • @Jazimov 他们是一样的。这是因为 James 的答案是在 2014 年编辑的。当 Simpu 在 2010 年发布这个答案时,James 之前的帖子是关于 SerializeObject 而不是 ToString() 的格式化参数(您可以在答案的编辑历史记录中看到这一点)。 (5认同)

Maw*_*rdy 6

您可以使用 JsonConvert.SerializeObject()

JsonConvert.SerializeObject(myObject) // myObject is returned by JObject.Parse() method
Run Code Online (Sandbox Code Playgroud)

JsonConvert.SerializeObject()

JObject.Parse()