JSON使用部分对象序列化和反序列化C#
这是我要寻找的最后一个JSON对象-JSON使用部分对象序列化和反序列化C#,c#,json,serialization,json.net,C#,Json,Serialization,Json.net,这是我要寻找的最后一个JSON对象- { "firstName": "John", "lastName": "Smith", "age": 27, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021-3100" <-- Added by my applicatio
{
"firstName": "John",
"lastName": "Smith",
"age": 27,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100" <-- Added by my application
}
}
有没有一种方法可以序列化它并添加到传入的JSON中 可以用于部分反序列化,这样就不需要了解其他属性:
var jsonString = @"{
""firstName"": ""John"",
""lastName"": ""Smith"",
""address"": {
""streetAddress"": ""21 2nd Street"",
""city"": ""New York"",
""state"": ""NY"",
}
}";
dynamic dynoObject = JsonConvert.DeserializeObject<dynamic>(jsonString);
//adding age
AdditionalUserInfo additionalUserInfo = new AdditionalUserInfo();
additionalUserInfo.age = 27;
dynoObject.age = additionalUserInfo.age;
//adding postalCode
AdditionalAddressInfo additionalAddressInfo = new AdditionalAddressInfo();
additionalAddressInfo.postalCode = "10021 - 3100";
dynoObject.address.postalCode = additionalAddressInfo.postalCode;
var newJson = JsonConvert.SerializeObject(dynoObject);
您可以通过修改JObject将新值直接添加到Json中。比如说,
var jObj = JObject.Parse(json);
var address = jObj["address"] as JObject;
address.Add("postalCode","10021-3100");
jObj.Add("age",27);
var result = jObj.ToString();
输出
{
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"age": 27
}
你有没有考虑过用a来做这个?是it和.NET核心的.NET实现。还有第三方
var jObj = JObject.Parse(json);
var address = jObj["address"] as JObject;
address.Add("postalCode","10021-3100");
jObj.Add("age",27);
var result = jObj.ToString();
{
"firstName": "John",
"lastName": "Smith",
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"age": 27
}