Получить имя ключа из вложенного json с помощью jquery

vamsi спросил: 28 апреля 2018 в 08:29 в: jquery

Ниже мой json

{
"corpAPIBankingReq": {
    "Header": {
        "TranID": "1"
    },
    "Body": {
        "CustType": "Corporate",
        "Action_Type": "MultiPayment",
        "Action_Body": {
            "doMultiPaymentCorpReq": {
                "Header": {
                    "TranID": "${=System.currentTimeMillis() + ((int)(Math.random()*1000))}",
                    "Corp_ID": "ZOHO",
                    "Maker_ID": "M001",
                    "Checker_ID": "C001",
                    "Approver_ID": "A002"
                },
                "Body": {
                    "Payment": [
                        {
                            "RefNo": "test1",
                            "Amount": "100",
                            "Debit_TrnParticulars": "AISHWARYA",
                            "Debit_PartTrnRmks": "SESHADRI",
                            "Ben_Acct_No": "1000110010002463",
                            "Ben_TrnParticulars": "FTTEST",
                            "Ben_PartTrnRmks": "ABHIJEET",
                            "Mode_of_Pay": "FT",
                            "Nature_of_Pay": "SALC",
                            "Remarks": "DMR"
                        },
                        {
                            "RefNo": "test10063",
                            "Amount": "5",
                            "Debit_Acct_No": "409000115190",
                            "Debit_Acct_Name": "SACHIN R TENDULKAR",
                            "Debit_IFSC": "RATN0000999",
                            "Debit_Mobile": "9819378393",
                            "Ben_IFSC": "UBIN0556688",
                            "Ben_Acct_No": "8884476527",
                            "Ben_Name": "Sudarshan",
                            "Ben_BankName": "DHANALAXMI-Bank",
                            "Ben_Email": "prabhat.deep1234567wearethebest@naturesports.co.in",
                            "Ben_Mobile": "9696969696",
                            "Mode_of_Pay": "IMPS",
                            "Nature_of_Pay": "MPYMT",
                            "Remarks": "IMPS REQUEST"
                        }
                    ]
                },
                "Signature": {
                    "Signature": "1234"
                }
            }
        }
    }
}
}

В приведенном выше json мне нужно выяснить, что является первым ребёном "Action_Body", здесь в данном случае "doMultiPaymentCorpReq". Этот ключ будет продолжать динамично меняться, поэтому мне нужно найти его у его родителя. Тогда я буду использовать его, как

if(first child of Action Body is doMultiPaymentCorpReq){
   Do something;
}
else{
   Do something else;
}

Может кто-нибудь, пожалуйста, помогите, как я могу найти первый элемент здесь. Спасибо заранее.


1 ответ

Pedram ответил: 28 апреля 2018 в 08:48

Если вы хотите найти first item своего Action_Body в JSON и сравнить значение:

for (first in obj.corpAPIBankingReq.Body.Action_Body) {
  if (first == 'doMultiPaymentCorpReq') {
    console.log('yes');
  } else {
    console.log('no');
  }
}
var obj = {
  "corpAPIBankingReq": {
    "Header": {
      "TranID": "1"
    },
    "Body": {
      "CustType": "Corporate",
      "Action_Type": "MultiPayment",
      "Action_Body": {
        "doMultiPaymentCorpReq": {
          "Header": {
            "TranID": "${=System.currentTimeMillis() + ((int)(Math.random()*1000))}",
            "Corp_ID": "ZOHO",
            "Maker_ID": "M001",
            "Checker_ID": "C001",
            "Approver_ID": "A002"
          },
          "Body": {
            "Payment": [{
                "RefNo": "test1",
                "Amount": "100",
                "Debit_TrnParticulars": "AISHWARYA",
                "Debit_PartTrnRmks": "SESHADRI",
                "Ben_Acct_No": "1000110010002463",
                "Ben_TrnParticulars": "FTTEST",
                "Ben_PartTrnRmks": "ABHIJEET",
                "Mode_of_Pay": "FT",
                "Nature_of_Pay": "SALC",
                "Remarks": "DMR"
              },
              {
                "RefNo": "test10063",
                "Amount": "5",
                "Debit_Acct_No": "409000115190",
                "Debit_Acct_Name": "SACHIN R TENDULKAR",
                "Debit_IFSC": "RATN0000999",
                "Debit_Mobile": "9819378393",
                "Ben_IFSC": "UBIN0556688",
                "Ben_Acct_No": "8884476527",
                "Ben_Name": "Sudarshan",
                "Ben_BankName": "DHANALAXMI-Bank",
                "Ben_Email": "prabhat.deep1234567wearethebest@naturesports.co.in",
                "Ben_Mobile": "9696969696",
                "Mode_of_Pay": "IMPS",
                "Nature_of_Pay": "MPYMT",
                "Remarks": "IMPS REQUEST"
              }
            ]
          },
          "Signature": {
            "Signature": "1234"
          }
        }
      }
    }
  }
};


for (first in obj.corpAPIBankingReq.Body.Action_Body) {
console.log('First is:' + first);
if(first == 'doMultiPaymentCorpReq'){
console.log('yes');
} else {
console.log('no');
}
}