这是我的代码,首先我获取对象并将其解析为json对象。
var PJson = JSON.parse(this.responseText);
稍后,我为每个人运行一个简单的方法来获取该对象的键和值:
//get keyset from JSON object
for (var key in PJson.user) {
console.log('here');
console.log(key);
}
最后,这是我的输出:
[INFO] : here
[INFO] : 0
键是= 0
JSON对象如下所示:
Get Request is called
[INFO] : (
[INFO] : {
[INFO] : "auth_token" = xxxxxxx;
[INFO] : name = "John dot";
[INFO] : nickname = tg;
[INFO] : pictures = (
[INFO] : "http://xxxx.com/me/picture"
[INFO] : );
[INFO] : yob = 1986;
[INFO] : }
[INFO] : )
感谢。
编辑 - 来自api的原始json对象:
200 (OK)
Content-Type: application/json
{
"status": "OK",
"user": [{
"auth_token": "xxxxxx",
"name": "John Dot",
"pictures":["http://xxxxx.com/me/picture"],
"nickname":"tg",
"yob": "1986",
}]
}
编辑2:
我已经设法通过我的代码将数组转换为json对象:
var PJson = JSON.stringify(this.responseText);
PJson = JSON.parse(PJson);
我得到以下回复:
{
"status": "OK",
"user": [{
"auth_token": "xxxxxx",
"name": "John Dot",
"pictures":["http://xxxxx.com/me/picture"],
"nickname":"tg",
"yob": "1986",
}]
}
现在是有效的JSON。
麻烦的是,当我为每个循环运行时
for (var key in PJson) {
console.log('here');
console.log(key);
}
我回垃圾,知道为什么?只是一系列键1,2,3,4,5,6 [...],138
答案 0 :(得分:1)
PJson.user
是一个包含1个项目的数组。
执行for (var key in PJson.user)
键时,只是数组的索引 0
因此,在这种情况下for (var key in PJson.user[0])
应该为您提供用户的所有键