C# 在c中更新json对象
我有一个json对象,类似于C# 在c中更新json对象,c#,json,object,edit,C#,Json,Object,Edit,我有一个json对象,类似于 { "name" : "sai", "age" : 22, "salary" : 25000} { "name" : "sai", "age" : 23, "salary" : 25000, "Gender" : "male"} foreach (var item
{ "name" : "sai", "age" : 22, "salary" : 25000}
{ "name" : "sai", "age" : 23, "salary" : 25000, "Gender" : "male"}
foreach (var item in actualJson)
{
bool isFound = false;
foreach (var newItem in newJson)
{
if(item == newItem) // always returns false, anything wrong with this?
{
isFound = true;
break;
}
}
if(!isFound)
{
// add to json
}
}
我想通过以下方式更新json对象
{ "name" : "sai", "age" : 23, "Gender" : "male"}
然后我想要一个类似的结果
{ "name" : "sai", "age" : 22, "salary" : 25000}
{ "name" : "sai", "age" : 23, "salary" : 25000, "Gender" : "male"}
foreach (var item in actualJson)
{
bool isFound = false;
foreach (var newItem in newJson)
{
if(item == newItem) // always returns false, anything wrong with this?
{
isFound = true;
break;
}
}
if(!isFound)
{
// add to json
}
}
我试过类似的东西
{ "name" : "sai", "age" : 22, "salary" : 25000}
{ "name" : "sai", "age" : 23, "salary" : 25000, "Gender" : "male"}
foreach (var item in actualJson)
{
bool isFound = false;
foreach (var newItem in newJson)
{
if(item == newItem) // always returns false, anything wrong with this?
{
isFound = true;
break;
}
}
if(!isFound)
{
// add to json
}
}
我没有办法解决这个问题
任何帮助/指导都将不胜感激。您可以通过以下方式:
var json1 = "{ \"name\" : \"sai\", \"age\" : 22, \"salary\" : 25000}";
var json2 = "{ \"name\" : \"sai\", \"age\" : 23, \"Gender\" : \"male\"}";
var object1 = JObject.Parse(json1);
var object2 = JObject.Parse(json2);
foreach (var prop in object2.Properties())
{
var targetProperty = object1.Property(prop.Name);
if (targetProperty == null)
{
object1.Add(prop.Name, prop.Value);
}
else
{
targetProperty.Value = prop.Value;
}
}
var result = object1.ToString(Formatting.None);
如果json2的属性不存在,则会将其添加到json1中;如果存在,则会更新该值。如果再次创建包含所有元素的json,会怎么样?如果再次创建包含所有元素的json,会怎么样?也没有性别在第一个,然后如何得到更新@请检查更新的问题。我需要上面解释的东西。但它不工作,引发了一些异常,无法向对象添加相同的属性