在javascript中将JSON转换为数组键值

在javascript中将JSON转换为数组键值,javascript,json,Javascript,Json,我一直在开发一个web应用程序,从节点服务器接收以下格式的数据: "{""elements":[{"10sr2b2":{"total":0,"bad":22,"clients":["fc8e7f","fc8e7e"],"zone":"101900"}}]}" 问题是该数据是一个名为“elements”的数组键值,其中“10sr2b2”是数组第一个元素的键 因此,当我调用$.parseJSON()方法时,将返回如下对象: elements: Array[1] 0: Object 10

我一直在开发一个web应用程序,从节点服务器接收以下格式的数据:

"{""elements":[{"10sr2b2":{"total":0,"bad":22,"clients":["fc8e7f","fc8e7e"],"zone":"101900"}}]}"
问题是该数据是一个名为“elements”的数组键值,其中“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”应该是键,它是一个对象,我需要以某种方式得到这个值


您能帮我吗?

您能从节点服务器更改格式吗?它需要发送更多类似于:


“{”“元素”:[{“键”:“10sr2b2”“值”:{“总计”:0,“坏的”:22,“客户端”:“fc8e7f”、“fc8e7e”],“区域”:“101900”}}]}“

您可以使用
对象.keys
获取对象键

var keys = Object.keys(data.elements[0]);

如果您知道每个项目始终只有一个键,那么您可以在循环中使用一个for..in,该循环立即中断s

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
}
var i,key,obj=$.parseJSON(/*…*/);
对于(i=0;i
你的JSON的格式是
对象{“key”:数组[Object{“key”:Object{…}]}
就像你在解析它时看到的那样。虽然你可以在对象中找到键,但它可能更适合你的需要,可以将服务器提供给你的内容重新构造成
对象{“key”:数组[Object{“key”:“hash”,“value”:Object{…}]}
,现在您可以使用
o.elements[i].key;
o.elements[i].value
我认为密钥以numberHi开头是一种不好的做法,感谢您的贡献,不幸的是我无法更改此格式。但您能在解析之前将接收到的数据转换为此格式吗?不。这是示例数据。我需要大量数据,无法将接收到的数据转换为此格式在