【发布时间】:2021-10-18 19:40:39
【问题描述】:
如何将一个对象直接序列化为 JSON.Net 中的 JObject 实例?通常所做的是将对象直接转换为 json string,如下所示:
string jsonSTRINGResult = JsonConvert.SerializeObject(someObj);
然后可以将其反序列化回JObject,如下所示:
JObject jObj = JsonConvert.DeserializeObject<JObject>(jsonSTRINGResult);
这似乎可行,但似乎这种方式具有双重性能影响(序列化然后反序列化)。 SerializeObject 内部是否使用了可以以某种方式访问的 JObject?或者有什么方法可以直接序列化为JObject?
【问题讨论】:
-
为什么要在代码中使用 JObject 而不是原生类型/类?
-
简而言之,它允许 Json.Net 处理所有硬序列化的东西,允许我对最终的序列化结果做一些我想做的事情,这不会是 json。如果您想知道(尽管这与特定问题无关),我想以一种将属性用于属性而不是 XML 子元素的方式序列化为 XML,就像 JSON.Net XML 序列化程序(可以理解)那样,使用也许还有一些其他的自定义。
-
Eser,请将其发布为答案,只需确保给出一个单行代码示例(这里是:JObject.FromObject(obj))。还是可以的!
-
好问题,我正在寻找这个问题。当您使用自定义 json 序列化或构建支持多种序列化格式的序列化框架时,这会非常方便。 +1
标签: c# json serialization json.net