C#合并2个Json字符串

C#合并2个Json字符串,c#,C#,我尝试合并2个json字符串,但不幸的是,它没有按预期工作,因为我希望根据id合并这2个json数据,如下所示: Json_1 : result [ result[0] { id : 11111 attribute1 : "<anything>" attribute2 : "<anything>"

我尝试合并2个json字符串,但不幸的是,它没有按预期工作,因为我希望根据id合并这2个json数据,如下所示:

Json_1 :
result [
        result[0]
              { id : 11111
                attribute1 : "<anything>"
                attribute2 : "<anything>"
                ...
              } 
        result[1]
              { id : 22222
                attribute1 : "<anything>"
                attribute2 : "<anything>"
                ...
              } 
        ...
      ]

Json_2 :
result [
        result[0]
              { id : 11111
                attribute99 : "<anything>"
                attribute98 : "<anything>"
                ...
              } 
        result[1]
              { id : 22222
                attribute99 : "<anything>"
                attribute98 : "<anything>"
                ...
              } 
        ...
]

Expect Merged Json should look like this :
Result[
           result[0]
              { id : 11111
                attribute1 : "<anything>"
                attribute2 : "<anything>"
                attribute99 : "<anything>"
                attribute98 : "<anything>"
                ...
              } 
        result[1]
              { id : 22222
                attribute1 : "<anything>"
                attribute2 : "<anything>"
                attribute99 : "<anything>"
                attribute98 : "<anything>"
                ...
              } 
        ...
]

您可能希望这样声明JSON类:

类结果
{
公开名单结果
}
然后可以使用Newtonsoft.Json获取这两个对象,如下所示:

var result=JsonConvert.Deserialize(jsonA)?.result??新名单;
var other=JsonConvert.Deserialize(jsonB)?.result??新名单;
然后您可以通过串联来合并它们,请记住,我们可能没有特定的索引,因此需要在那里创建对象:

result.Capacity=Math.Max(result.Count,other.Count)//为了获得更好的性能,可以删除
对于(var i=0;i
result
现在包含合并结果


注意我们假设没有重叠键。

您需要帮助的代码在哪里?您是否意识到您的“JSON”根本就不是有效的JSON?还有:你自己试过什么?你遇到了什么问题?你研究了什么?
    public static string MergeJson(string json1,string json2)
    {

        JObject obj_json_1 = JObject.Parse(json1);
        JObject obj_json_1 = JObject.Parse(json2);

        var lookup = obj_json_2.SelectTokens("result[*]").ToLookup(c => (string)c["id"]);

        foreach (var std in obj_json_1.SelectTokens("result[*]"))
        {
            try
            {
                std["result"] = (new JArray(lookup[(string)std["id"]]));
            }
            catch (Exception e)
            {
                Console.WriteLine("Error in Merge Json : {0}", e.Message);
            }
        }
        return obj_json_1.ToString();
    }