当我没有'我不知道关键值
How do I retrieve a key from a JSON response, when I don't know the key value?
这可能真的很简单,但我一直在努力想办法。
我需要从JSON响应中获取一个值,但响应中返回的密钥是随机的,所以我不能直接引用它来深入它
以下是我得到的回复:
var c = {
"success": {
"7d40ab5352b0471cae5bdefc2e032840": {
"__type__" : "user",
"__id__" : "7d40ab5352b0471cae5bdefc2e032840"
}
},
"errors": {}
}
我需要的是你在那里看到的随机字符串——ID。我试过各种各样的事情,但一辈子都想不出如何将ID作为字符串返回。我试过用数组表示法c.success[0][0]
来实现它,但没有成功。很明显,我不能使用点号法,因为我不知道该在后面加什么。成功。
有人知道在事先不知道数组密钥的情况下该怎么办吗?我想确保我这样做的方式被认为是最好的做法,而不是黑客。
谢谢。。。如果我不知何故错过了这个问题的答案,请以这种方式发给我。我找了好几天都找不到这个答案。
这:
var obj = c.success[ Object.keys( c.success )[0] ];
obj.__type__ // "user"
obj.__id__ // "7d40ab5352b0471cae5bdefc2e032840"
现场演示:http://jsfiddle.net/AJaBS/
for (var prop in c.success) {
alert(c.success[prop].__id__); // Replace the alert with whatever you want to do with the ID
// break; // Uncomment if there can be more than one ID returned and you only want one
}
如果密钥与__id__
值相同,您可以简单地执行:
for (var prop in c.success) {
alert(prop); // Replace the alert with whatever you want to do with the ID
// break; // Uncomment if there can be more than one ID returned and you only want one
}
尽管Šime Vidas对Object.keys的使用更加优雅,除非您使用所谓的him,否则您将需要上面的代码才能在旧的浏览器中工作(即,您添加了一些额外的代码,使您今天可以使用新的标准——即,Object.keys的实现,它做的事情与我上面做的一样,除非已经存在内置版本,在这种情况下,填充程序将优先于内置版本)。
您可以使用一个简单的循环:
for (var id in c.success) {
var obj = c.success[id];
// do something
}
如果要确保只处理对象中的第一个属性,可以在最后添加break;
语句。
相关文章:
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 这个旋钮没有更新;我不知道为什么
- 我不知道为什么我的代码是错误的?又有什么错
- 我不知道我的编码有什么问题.(JavaScript)
- I'我不知道为什么我的代码没有'不起作用
- sqlite查询返回错误-can'我不知道为什么
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 我不知道如何正确地将REST响应对象传递给ReactJS子组件
- 我没有'我不知道为什么我的jqGrid子网格没有'不要给我看数据
- 当我没有'我不知道关键值
- 在不知道键的情况下从对象获取值
- 当我不知道属性名称时,如何从 javascript 对象中获取值
- 下面的Javascript函数是通过值还是通过引用传递参数?我不知道如何区分这两者
- 如何获得JavaScript对象的所有属性值(不知道键)
- 最终显示不正确的无线电值.我不知道为什么
- 可以'我不知道如何";绑定";数组中的值
- Javascript:如果我不知道嵌套对象的键,我该如何访问该对象中的值
- 在不知道键值名称的情况下动态获取objectliteral的值
- 我不知道为什么我的javascript不起作用.我正在动态地将值传递给标签