[英]How to retrieve values from json
我是json的新手,所以plz確實幫了我忙。 我正在嘗試從此json檢索值,例如:我想從此json獲取fname。 我如何獲得這個價值? 我嘗試了showdata.fname,showdata.id [0] .fname,但是我不知道這是一個愚蠢的要求,但請幫助我。
var showdata = {
"fc1d3f54-bcd3-2c4d-2626-cb9904e63800": {
"fname": "Nitish",
"lname": "pakhare",
"phoneno": "4545445",
"id": "fc1d3f54-bcd3-2c4d-2626-cb9904e63800"
},
"6ae08ee6-b02d-0eeb-4ead-1d52bbdadf5e": {
"fname": "Ashish",
"lname": "Pakahre",
"phoneno": "454545",
"id": "6ae08ee6-b02d-0eeb-4ead-1d52bbdadf5e"
},
"7e418c15-17c1-da8e-b614-b362f7937eb9": {
"fname": "Arpita",
"lname": "kimar",
"phoneno": "454545",
"id": "7e418c15-17c1-da8e-b614-b362f7937eb9"
}
}
此代碼記錄該對象內的所有fname
屬性。
for( var key in showdata ) {
if ( showdata.hasOwnProperty( key ) ) {
console.log( showdata[ key ][ 'fname' ] );
}
}
實際上,您有一個具有多個屬性的對象。 上面的代碼遍歷所有屬性,檢查該對象中是否實際存在該屬性(這解決了JavaScript對象原型性質帶來的一些問題)並記錄了值。 您應該用程序邏輯替換日志記錄。
使用數組而不是對象的實現會更容易。 這樣,您可以使用所有本機JavaScript數組功能(例如map
等)。但是,在這種情況下,您會松開鍵(除非您將它們添加為子對象中的附加屬性)。 如下所示:
var showdata = [
{
"key": "fc1d3f54-bcd3-2c4d-2626-cb9904e63800",
"fname": "Nitish",
"lname": "pakhare",
"phoneno": "4545445",
"id": "fc1d3f54-bcd3-2c4d-2626-cb9904e63800"
},
{
"key": "6ae08ee6-b02d-0eeb-4ead-1d52bbdadf5e",
"fname": "Ashish",
"lname": "Pakahre",
"phoneno": "454545",
"id": "6ae08ee6-b02d-0eeb-4ead-1d52bbdadf5e"
},
{
"key": "7e418c15-17c1-da8e-b614-b362f7937eb9",
"fname": "Arpita",
"lname": "kimar",
"phoneno": "454545",
"id": "7e418c15-17c1-da8e-b614-b362f7937eb9"
}
];
showdata.fc1d3f54-bcd3-2c4d-2626-cb9904e63800.fname
應該是答案,但我不確定它是否可以工作。
如果要訪問它們,可以執行以下操作:
showdata.fc1d3f54-bcd3-2c4d-2626-cb9904e63800.fname
但這將對其進行硬編碼。 相反,您可以通過循環訪問它們。
var key, entry;
for(key in showdata){
if(showdata.hasOwnProperty(key)){
entry = showdata[key];
//entry.fname
//entry.lname
//entry.phoneno
//entry.id, which would be the same as key in your case
}
}
您還可以考慮使用數組,這樣就不會對鍵進行硬編碼:
var showdata = [
{
"fname": "Nitish",
"lname": "pakhare",
"phoneno": "4545445",
"id": "fc1d3f54-bcd3-2c4d-2626-cb9904e63800"
}, {
"fname": "Ashish",
"lname": "Pakahre",
"phoneno": "454545",
"id": "6ae08ee6-b02d-0eeb-4ead-1d52bbdadf5e"
}, {
"fname": "Arpita",
"lname": "kimar",
"phoneno": "454545",
"id": "7e418c15-17c1-da8e-b614-b362f7937eb9"
}
]
//showdata[0].fname
看起來您正在使用長的十六進制字符串作為鍵,您將訪問類似
showdata['fc1d3f54-bcd3-2c4d-2626-cb9904e63800']['fname']
方括號表示法比點表示法更可取,因為它在查找內容時更健壯,尤其是對於像這樣的長鍵。
showdata['fc1d3f54-bcd3-2c4d-2626-cb9904e63800'].fname
也可以
如果希望使用整數對它進行索引,則可以將其結構化為:
var showdata = [
{
"fname": "Nitish",
"lname": "pakhare",
"phoneno": "4545445",
"id": "fc1d3f54-bcd3-2c4d-2626-cb9904e63800"
},
{
"fname": "Ashish",
"lname": "Pakahre",
"phoneno": "454545",
"id": "6ae08ee6-b02d-0eeb-4ead-1d52bbdadf5e"
}
]
作為對象數組,則可以
showdata[0].fname
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.