【问题标题】:Looping through json parse loops through each character遍历 json 解析循环遍历每个字符
【发布时间】:2014-08-10 22:35:30
【问题描述】:

我正在尝试遍历从 PHP 获得的 JSON 字符串,我遇到的问题是,当我尝试遍历我的字符串时,它不会遍历每个对象,而是遍历其中的每个字符字符串。

我认为解决这个问题的方法是解析它,但没有成功。

var json = JSON.stringify(player.get(url));
console.log(json);
json = $.parseJSON(json);

for (var key in json) {
    if (json.hasOwnProperty(key)) {
        console.log(key + " -> " + json[key]);
    }
}

我得到了一个非常好的 JSON 结果,因为我已经在一个在线转换器中对其进行了测试 -

{
    "id": "1",
    "username": "Jessica",
    "password": "password",
    "age": "100",
    "size": "100"
}

但是,当我遍历它时,控制台会显示:

0 -> { index.html:29

1 -> " index.html:29

2 -> 0 index.html:29

3 -> " index.html:29

4 -> : index.html:29

5 -> " index.html:29

6 -> 1 index.html:29

7 -> " index.html:29

8 -> , index.html:29

9 -> " index.html:29

10 -> c index.html:29

11 -> h index.html:29

12 -> 一个 index.html:29

13 -> r

任何想法为什么它没有正确循环通过 json 对象?

【问题讨论】:

标签: javascript php json


【解决方案1】:

改变

var json = JSON.stringify(player.get(url));

var json = player.get(url);

如果player.get(url); 返回一个包含 JSON 的字符串,则不需要将 那个 字符串也转换为 JSON。

您基本上是将数据转换为 JSON 两次,但只解析一次。所以要么解析数据两次,要么做更合理的事情,不要将包含 JSON 的字符串转换为 JSON。

【讨论】:

  • 是的,刚刚从上一篇文章中发现,这就是问题
  • @Felix 非常感谢,太棒了!
猜你喜欢
  • 2014-06-29
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
相关资源
最近更新 更多