我正在尝试遍历我从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对象的任何想法?
答案 0 :(得分:2)
更改
var json = JSON.stringify(player.get(url));
到
var json = player.get(url);
如果player.get(url);
返回包含JSON的字符串,则无需将该字符串转换为JSON。
您基本上将数据转换为JSON两次,但只解析一次。所以要么解析数据两次,要么做更合理的事情,不要将包含JSON的字符串转换为JSON。