2015-03-17 1 views
0

У меня есть объект JSON-то вродеобновление объекта JSON в C#

{ "name" : "sai", "age" : 22, "salary" : 25000} 

Я хочу, чтобы обновить объект JSON с помощью

`{ "name" : "sai", "age" : 23, "Gender" : "male"}` 

Тогда я хочу привести что-то вроде

{ "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 
} 
} 

У меня нет идеи, чтобы решить эту проблему?

Любая помощь/руководство будет принята с благодарностью.

+1

Что делать, если вы снова создадите json со всеми элементами. – tharif

+1

Что делать, если вы снова создадите json со всеми элементами? Также нет пол в первом, а затем как он обновляется.! – tharif

+0

@Пожалуйста, проверьте обновленный вопрос. Мне нужно что-то вроде описанного выше. , но он не работает, повышенное исключение не может добавить такое же свойство к объекту –

ответ

3

С Json.NET вы можете сделать что-то вроде этого:

 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, если он не существует, или он будет обновлять значение, если оно существует.

+0

Спасибо @thomas :) –