在.NET中使用部分JSON更新反序列化对象

时间:2015-11-25 16:19:13

标签: c# .net json json.net deserialization

我使用Newtosoft Json.NET库反序列化对对象的API响应。但是我需要使用部分更新来更新已经反序列化的对象(例如,只有更改属性的JSON包含)。

例如:

我有一个人模型(当然简化):

public class PersonModel
{    
  public string Name { get; set; }
  public string Surname{ get; set; }
  public int Age { get; set; }
}

从JSON数据反序列化的Person实例:

{  
   "name": "John",
   "surname": "Newton",
   "age": 20
}

然后我通过更改获得JSON:

{  
   "age": 21
}

我需要使用此JSON更新我的实例(因此我的实例的只有age属性将更新为值21)

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:-2)

根据这个问题:How to update a property of a JSON object using NewtonSoft

您可以使用属性作为键来访问该对象:

string jsonInstance = "{  
   "name": "John",
   "surname": "Newton",
   "age": 20
}";

string jsonEdit = "{  
   "age": 21
}";

JObject instance = JObject.Parse(jsonInstance);
JObject edit = JObject.Parse(jsonEdit);
instance["age"] = edit["age"];