如何从 JSON 中检索值
How to retrieve values from json
我是json的新手,所以请帮我解决这个问题。我正在尝试从这个 json 中检索值,例如:I想从这个 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
实际上,这是正确的语法。
看到这个修补匠:JSON 修补匠
如果要访问它们,可以执行以下操作:
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
相关文章:
- 可以't使用Angular解析/检索JSON
- 在AngularJS中使用$http.get检索JSON时出现错误400
- 在 ajax 成功和循环 json 数组时检索 json 数组
- 检索JSON数据并使用AJAX在表中显示
- gmaps4rails:如何从控制器中检索json值
- 在不知道名称的情况下检索json元素
- JSon挑战:如何在JqxGrid中检索JSon编码的值
- AngularJS基于日期检索JSON记录
- Angular JS:根据 id 检索 json 数据
- 仅使用该值检索 JSON 密钥
- 无法在 JavaScript 中检索 JSON 值
- 使用 Ember Data 检索 json 文件
- jQuery ajax 无法检索 json
- 如何从PHP文件中检索JSON数据
- 使用 jquery ajax 跨域检索 json 数据
- 从 youtube 网址检索 JSON
- 如何使用 JavaScript 检索 JSON 对象数组值
- JQuery AJAX-如何从URL检索JSON数据
- 使用 .getJSON 从 php 文件中检索 JSON 数据
- 正在检索Json字符串的一部分