2015-06-15 92 views
1

我有一个json数据作为输入字符串。现在我需要用输入的Json数据更新现有的Json数据。就我而言,我想通过每个密钥并与现有的Json数据匹配,然后使用输入Json数据更新该密钥的如何在不知道密钥值的情况下读取Json数据

代码以检索现有数据

var existingJSon = ProductRepository.ListOfProd.Cast<JArray>().Where(x => x["ProdId"].ToString() == id.ToString()); 

检索数据我existingJson看起来像下面经过。

{ 
    ProdId:"1", 
    Title:"C#", 
    Author:"Jeffy", 
    Publisher:"XYZ", 
    Category:"Microsoft" 
    } 

现在我需要遍历每个作为输入的键并匹配到现有的Json键并更新该键的值。

输入和更新它应该是这样的后:

{ 
ProdId:"1", 
Title:"C#", 
Author:"Jeffy", 
Publisher:"abcd", 
Category:"Microsfot Basic .Net Development Kit" 
} 
+0

你想使用jQuery来做到这一点? –

+0

不可以使用C#。这不可能吗? –

+0

[合并](http://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_Linq_JContainer_Merge_1.htm)新的JToken到旧的。 – dbc

回答

2

看看这可以帮助你,我们可以用Newtonsoft反序列化未知类型和循环键和值。

string json = "{ProdId:\"1\",Title:\"C#\",Author:\"Jeffy\",Publisher:\"XYZ\",Category:\"Microsoft\"}"; 
     JObject obj = JsonConvert.DeserializeObject < JObject>(json); 
     var properties = obj.Properties(); 
     foreach (var prop in properties) 
     { 
      string key = prop.Name; 
      object value = prop.Value; 
     } 
相关问题