2015-03-03 2 views
0

Я буду хранить данные json в localstorage, время загрузки программы сравнивает локальное хранилище json и объявленную переменную json. Если оба они разные, добавьте это в localstorage json.сравнить два json и Добавить новый объект в json

Я попытался, как ниже

var intial_json_string='{'+ 
    ' "javascript":{"totmark":0,"outof":100},'+ 
    ' "html":{"totmark":0,"outof":100},'+ 
    ' "php":{"totmark":0,"outof":100},'+ 
    ' "java":{"totmark":0,"outof":100},'+ 
    ' "Bottel":{"totmark":0,"outof":100}'+ 
    '}'; 

function first_load() 
{ 
    var tmp_json=jQuery.parseJSON(localStorage.getItem("localconst_json")); 
    var loc_tmp_json=jQuery.parseJSON(intial_json_string); 

    var temp_obj={"totmark":0,"outof":100}; 

    $.grep(tmp_json,function(n,i){ 
     var found=0; 
     $.grep(loc_tmp_json,function(n1,i1){  

      if(n==n1) 
       found=1; 
     }); 
     if(found==1) 
     { 
      loc_tmp_json[n] = temp_obj; 
     } 
    }); 
} 

Пример

var json1='{'+ 
    ' "javascript":{"totmark":0,"outof":100},'+ 
    ' "html":{"totmark":0,"outof":100},'+ 
    ' "php":{"totmark":0,"outof":100},'+ 
    ' "java":{"totmark":0,"outof":100},'+ 
    ' "Bottel":{"totmark":0,"outof":100}'+ 
    '}'; 

var json2='{'+ 
    ' "javascript":{"totmark":1,"outof":100},'+ 
    ' "html":{"totmark":2,"outof":100},'+ 
    ' "php":{"totmark":3,"outof":100},'+ 
    ' "java":{"totmark":5,"outof":100}'+ 
    '}'; 

Сравнить оба объекта JSon, и если не существует, то добавить отсутствующий объект json2.

var json2='{'+ 
    ' "javascript":{"totmark":1,"outof":100},'+ 
    ' "html":{"totmark":2,"outof":100},'+ 
    ' "php":{"totmark":3,"outof":100},'+ 
    ' "java":{"totmark":5,"outof":100},'+ 
    ' "Bottel":{"totmark":0,"outof":100}'+ 
    '}'; 
+0

И что это ваша проблема? – Regent

+0

проверить это на предмет сравнения объектов jsonhttp: //stackoverflow.com/questions/1068834/object-comparison-in-javascript –

+0

Я могу сравнить, как добавить объект в json –

ответ

0
var tmp_json=jQuery.parseJSON(localStorage.getItem("localconst_json")); 
var loc_tmp_json=jQuery.parseJSON(intial_json_string); 

var temp_obj={"totmark":0,"outof":100}; 


$.each(loc_tmp_json,function(n,i){ 
    var found=0; 
    $.each(tmp_json,function(n1,i1){  

     if(n==n1) 
      found=1; 
    }); 
    if(found==0) 
    { 
     tmp_json[n] = temp_obj; 
    } 
}); 


localStorage.setItem("localconst_json",JSON.stringify(tmp_json)); 
const_json=jQuery.parseJSON(localStorage.getItem("localconst_json")); 
Смежные вопросы