C# JSon.Net JObject.FromObject Vs JsonConvert.DeserializeObject<;JObject>;(JsonConvert.SerializeObject(obj));

C# JSon.Net JObject.FromObject Vs JsonConvert.DeserializeObject<;JObject>;(JsonConvert.SerializeObject(obj));,c#,json.net,json-deserialization,C#,Json.net,Json Deserialization,我试图寻找上述比较,但找不到答案 因为获取JObject(或从JToken继承的所有子类型)有多种方法 例如: 方法1 作业对象.FromObject(obj) 方法2 JsonConvert.DeserializeObject(JsonConvert.SerializeObject(obj)) 方法1会比方法2更好吗 我的用例与将一组实体备份到文本文件中并将其还原有关。如果您查看源代码和,这两种方法都使用jsonSerializer。所以它应该是完全相同的。这是更快的: JObject.Fro

我试图寻找上述比较,但找不到答案

因为获取JObject(或从JToken继承的所有子类型)有多种方法 例如:

方法1

<代码>作业对象.FromObject(obj)

方法2

<代码>JsonConvert.DeserializeObject(JsonConvert.SerializeObject(obj))

方法1会比方法2更好吗


我的用例与将一组实体备份到文本文件中并将其还原有关。

如果您查看源代码和,这两种方法都使用
jsonSerializer
。所以它应该是完全相同的。

这是更快的:

JObject.FromObject(obj);
它直接从对象构建JObject。另一个方法将对象序列化为JSON字符串,然后解析JSON以构建JObject


文档:感谢@Florian的快速响应。由于有多种方法可以完成同一项工作,因此想知道是否有任何隐藏的含义。
JToken.FromObject
从不将数据转储到字符串,而是使用JTokenWriter,因此它应该比将数据转储到字符串并返回更快。如果您担心性能,您应该在自己的环境中对其进行基准测试,以找出答案。我做了一些测试。随着对象大小的增加,JObject.FromObject(obj)显示出更好的结果。对于小型对象(具有20个属性左右、嵌套最少或没有嵌套的jobject),两种方法都显示类似的结果。谢谢@James。将尽可能使用JObject.FromObject。