我想反序列化一个 JSON 字符串,该字符串不一定包含每个成员的数据,例如:
public class MyStructure
{
public string Field1;
public string Field2;
}
假设我有一个实例:
Field1: "data1"
Field2: "data2"
我反序列化一个字符串:
{ "Field1": "newdata1" }
结果应该是
Field1: "newdata1"
Field2: "data2"
框架JavascriptSerializer
and JSON.NET
两者都在反序列化方法中返回新对象,因此我能想到直接执行此操作的唯一方法是使用反射将反序列化对象与现有对象进行比较,这似乎会产生很多不必要的开销。理想情况下,某些软件会有一种方法,在该方法中我传递对象的现有实例,并且只有字符串中存在的那些成员才会更新。这里的要点是,我希望能够仅将已更改的数据传递到服务器,并更新现有对象。
使用这些工具是否可以实现这一点?如果不行,有关于如何解决该问题的建议吗?
浏览源代码后(比阅读文档容易得多,是吗?)JSON.NET
已经做的正是我想要的:
JsonConvert.PopulateObject(string, object)
See Json.NET:填充对象 https://www.newtonsoft.com/json/help/html/PopulateObject.htm
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)