比较两个json对象

时间:2016-06-15 13:11:20

标签: javascript jquery json xml

假设有2个像这样的json对象:

 var obj1=    {
"errors":{
  "addcreditcard":"Non è stato possibile associare questa carta, ti preghiamo di ricontrollare i dati e riprovare.",
  "creditrecharge":"Si è verificato un errore durante la ricarica.",
  "ticketvalidation":"Siamo spiacenti, si è verificato un problema durante la validazione.",
  "ticketpurchase": "Siamo spiacenti, si è verificato un problema durante l\"acquisto.",
  "qrwrong": "Hai scansionato un QR Code non valido. Scansiona un QR Code OpenMove."
 }
}

而且:

var obj2 =  {
'errors':{
   'addcreditcard':'Wir konnten diese Karte nicht verifizieren. Bitte         \u00fcberpr\u00fcfe deine Angaben und versuche es noch einmal.',
   'creditrecharge':'Beim Aufladen deines Guthabens ist ein Fehler aufgetreten.',
   'qrwrong': 'Sie haben einen ung\u00fcltigen QR Code gescannt. Bitte einen OpenMove QR Code scannen.'
}
}

如何使用第一个json中的值而不是第二个中的值获取另一个对象(使用javascript或jquery)? 在这种情况下,它将是:

 var example = {
  "errors":{
      "ticketvalidation":"Siamo spiacenti, si è verificato un problema durante  la validazione.",
     "ticketpurchase": "Siamo spiacenti, si è verificato un problema durante l\"acquisto."
}
}

1 个答案:

答案 0 :(得分:0)

您可以使用此代码迭代第二个对象中的所有属性,并检查它们是否存在于第一个对象中:

   var obj1=    {
"errors":{
  "addcreditcard":"Non è stato possibile associare questa carta, ti preghiamo di ricontrollare i dati e riprovare.",
  "creditrecharge":"Si è verificato un errore durante la ricarica.",
  "ticketvalidation":"Siamo spiacenti, si è verificato un problema durante la validazione.",
  "ticketpurchase": "Siamo spiacenti, si è verificato un problema durante l\"acquisto.",
  "qrwrong": "Hai scansionato un QR Code non valido. Scansiona un QR Code OpenMove."
 }
};

 var obj2 =  {
'errors':{
   'addcreditcard':'Wir konnten diese Karte nicht verifizieren. Bitte         \u00fcberpr\u00fcfe deine Angaben und versuche es noch einmal.',
   'creditrecharge':'Beim Aufladen deines Guthabens ist ein Fehler aufgetreten.',
   'qrwrong': 'Sie haben einen ung\u00fcltigen QR Code gescannt. Bitte einen OpenMove QR Code scannen.'
}
};

var finalObject = {};
for (var property in obj1.errors) {

    if (obj1.errors.hasOwnProperty(property)) {

       if(!obj2.errors.hasOwnProperty(property)){

           // exist only in first
           finalObject[property] = obj1.errors[property];
       }
    }
}

console.log(finalObject)