C# 在c中更新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

我有一个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
    }
}
我想通过以下方式更新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,会怎么样?也没有性别在第一个,然后如何得到更新@请检查更新的问题。我需要上面解释的东西。但它不工作,引发了一些异常,无法向对象添加相同的属性