【问题标题】:How to serialize a JObject without the formatting?如何在没有格式化的情况下序列化 JObject?
【发布时间】:2010-10-08 21:55:22
【问题描述】:

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

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

【问题讨论】:

    标签: json serialization json.net


    【解决方案1】:

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

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

    文档:Write JSON text with JToken.ToString

    【讨论】:

    • 这是否意味着将JObject 传递给SerializeObject 是一种特殊情况?它没有将JObject 视为普通的C# 类并尝试序列化内部,而是执行jObject.ToString(...) 之类的操作?
    【解决方案2】:

    您还可以执行以下操作;

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

    【讨论】:

    • 这与上面詹姆斯的建议有何不同? James 没有包含完整的命名空间引用,而您包含了 - 否则代码是相同的,不是吗?
    • @Jazimov 他们是一样的。这是因为 James 的答案是在 2014 年编辑的。当 Simpu 在 2010 年发布此答案时,James 较早的帖子是关于 SerializeObject 而不是 ToString() 的格式化参数(您可以在答案的编辑历史中看到这一点)。
    【解决方案3】:

    你可以使用JsonConvert.SerializeObject()

    JsonConvert.SerializeObject(myObject) // myObject is returned by JObject.Parse() method
    

    JsonConvert.SerializeObject()

    JObject.Parse()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 2011-02-23
      • 2021-04-11
      • 2012-05-07
      相关资源
      最近更新 更多