将JSON转换为数组键 - javascript中的值

时间:2014-03-24 14:01:44

标签: javascript json

我一直在开发一个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"它应该是关键,它是一个对象,我需要以某种方式得到这个值。

你能帮助我吗?

3 个答案:

答案 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
}