2017-08-11 53 views
0

我有以下的JSON:JSON路徑如何得到的值@

{ 
"code": 201, 
"data": { 
    "type": "Agent", 
    "id": { 
     "@type": "Client", 
     "@id": "88", 
     "title": "Ing.", 
     "titleAfter": null, 
     "name": "Ján", 
     "surname": "Kašperan", 
     "idNumber": "8706229411", 
     "dateOfBirth": null, 
     "idCardNumber": "OP12345", 
     "idCardExpirationDate": null, 
     "idCardType": { 
      "@type": "IdCardType", 
      "@id": 1, 
      "name": "id_card_type.id_card", 
      "shortName": "OP" 
     }, 
     "type": 1 
    } 
} 
} 

我想編寫一個JSON路徑表達式,這樣我想獲得的值「@id」「 88" ,.

我的JSON路徑不起作用:$ .data.id @ ID

+0

發現沒有太多的詳細信息 - 假設你表達的第一部分是正確的,你嘗試過'$ .data.id [」 @id「]' - 切換到最後一部分的括號表示法? –

+0

$。['data'] ['id'] ['@ id'] –

回答

0

由於@是不允許的,由字符串屬性名稱訪問它。關於屬性訪問更多信息,請MDN

var json = { 
 
    "code": 201, 
 
    "data": { 
 
    "type": "Agent", 
 
    "id": { 
 
     "@type": "Client", 
 
     "@id": "88", 
 
     "title": "Ing.", 
 
     "titleAfter": null, 
 
     "name": "Ján", 
 
     "surname": "Kašperan", 
 
     "idNumber": "8706229411", 
 
     "dateOfBirth": null, 
 
     "idCardNumber": "OP12345", 
 
     "idCardExpirationDate": null, 
 
     "idCardType": { 
 
     "@type": "IdCardType", 
 
     "@id": 1, 
 
     "name": "id_card_type.id_card", 
 
     "shortName": "OP" 
 
     }, 
 
     "type": 1 
 
    } 
 
    } 
 
} 
 
console.log(json.data.id["@id"])