我一直在开发一个Web应用程序,我从节点服务器接收这种格式的数据:
"{""elements":[{"10sr2b2":{"total":0,"bad":22,"clients":["fc8e7f","fc8e7e"],"zone":"101900"}}]}"
问题是这个数据是一个数组键值,称为"元素"其中" 10sr2b2"是数组第一个元素的关键。
所以当我调用$ .parseJSON()方法时,会返回一个这样的对象:
elements: Array[1]
0: Object
10sr2b2: Object
zone: "101900"
clients: Array[2]
0: "fc8e7f"
1: "fc8e7e"
length: 2
__proto__: Array[0]
bad: 22
total: 0
其中" 10sr2b2"它应该是关键,它是一个对象,我需要以某种方式得到这个值。
你能帮助我吗?
答案 0 :(得分:1)
您可以使用Object.keys
来获取对象键。
var keys = Object.keys(data.elements[0]);
答案 1 :(得分:0)
您可以从节点服务器更改格式吗?它需要发送更像的东西:
"{""elements":[{"key": "10sr2b2" "value": {"total":0,"bad":22,"clients":"fc8e7f","fc8e7e"],"zone":"101900"}}]}"
答案 2 :(得分:0)
如果您知道每个项目只有一个密钥,则可以使用for..in
循环break
,例如
var i, key, obj = $.parseJSON(/*...*/);
for (i = 0; i < obj.elements.length; ++i) { // loop over elements
for (key in obj.elements[i]) break; // get key
// now can access
obj.elements[i][key]; // Object
}