gpt4 book ai didi

Javascript如何解析JSON数组

转载 作者:IT老高 更新时间:2023-10-28 12:43:09 24 4
gpt4 key购买 nike

我正在使用 Sencha Touch (ExtJS) 从服务器获取 JSON 消息。我收到的消息是这样的:

{
"success": true,
"counters": [
{
"counter_name": "dsd",
"counter_type": "sds",
"counter_unit": "sds"
},
{
"counter_name": "gdg",
"counter_type": "dfd",
"counter_unit": "ds"
},
{
"counter_name": "sdsData",
"counter_type": "sds",
"counter_unit": " dd "
},
{
"counter_name": "Stoc final",
"counter_type": "number ",
"counter_unit": "litri "
},
{
"counter_name": "Consum GPL",
"counter_type": "number ",
"counter_unit": "litri "
},
{
"counter_name": "sdg",
"counter_type": "dfg",
"counter_unit": "gfgd"
},
{
"counter_name": "dfgd",
"counter_type": "fgf",
"counter_unit": "liggtggggri "
},
{
"counter_name": "fgd",
"counter_type": "dfg",
"counter_unit": "kwfgf "
},
{
"counter_name": "dfg",
"counter_type": "dfg",
"counter_unit": "dg"
},
{
"counter_name": "gd",
"counter_type": "dfg",
"counter_unit": "dfg"
}

]
}

我的问题是我无法解析这个 JSON 对象,因此我可以使用每个计数器对象。

我正在尝试这样做:

var jsonData = Ext.util.JSON.decode(myMessage);
for (var counter in jsonData.counters) {
console.log(counter.counter_name);
}

我做错了什么?谢谢!

最佳答案

Javascript 有一个内置的 JSON 解析字符串,我认为这就是你所拥有的:

var myObject = JSON.parse("my json string");

在您的示例中使用它是:

var jsonData = JSON.parse(myMessage);
for (var i = 0; i < jsonData.counters.length; i++) {
var counter = jsonData.counters[i];
console.log(counter.counter_name);
}

Here is a working example

编辑:你在使用 for 循环时有一个错误(我在第一次阅读时错过了这个,感谢@Evert 的现场)。使用 for-in 循环会将 var 设置为当前循环的属性名称,而不是实际数据。请参阅上面我更新的循环以了解正确用法

重要提示:JSON.parse 方法在旧的旧浏览器中不起作用 - 因此,如果您打算通过某种时间弯曲的互联网连接使您的网站可用,这可能是个问题!如果你真的有兴趣,here is a support chart (勾选了我所有的方框)。

关于Javascript如何解析JSON数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9991805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com