Javascript:解析JSON输出结果

时间:2013-07-19 03:38:35

标签: javascript json parsing

如何使用javascript从这样的JSON响应中检索值,我尝试了正常的JSON解析似乎不起作用

[["102",true,{"username":"someone"}]]

尝试以下代码:

url: "http://somewebsite.com/api.php?v=json&i=[[102]]",
onComplete: function (response) {
var data = response.json[0];
console.log("User: " + data.username); // doesnt work

3 个答案:

答案 0 :(得分:4)

var str = '[["102",true,{"username":"someone"}]]';
var data = JSON.parse(str);
console.log("User: " + data[0][2].username);
  1. 使用双引号
  2. 环绕someone
  3. 在尝试访问username属性
  4. 之前遍历数组数组

    如果您使用AJAX获取数据,@Alex Puchkov's answer表示最佳。

答案 1 :(得分:3)

所以这个问题就是它看起来像一个数组中的数组。所以要访问一个元素你会做这样的事情。

console.log(obj[0][0]);  

应打印102

假设您创建了这样的对象:

var obj = [["102",true,{"username":someone}]];  

这是您访问每个元素的方式:

obj[0][0]102

obj[0][1]true
obj[0][2]["username"]someone被定义为

的任何内容

从其他人的回答看来,您可能遇到的一些问题是解析JSON字符串。执行此操作的标准方法是使用JSON.parse,请记住,只有在数据是字符串时才需要这样做。这是应该怎么做的。

var obj = JSON.parse(" [ [ "102", true, { "username" : someone } ] ] ")

答案 2 :(得分:3)

这取决于你从哪里获得JSON:

如果您使用jQuery

然后jQuery将解析JSON本身并向您发送一个JavaScript变量给回调函数。确保在$ .ajax调用中提供正确的dataType或使用帮助方法,如$ .getJSON()

如果您通过普通AJAX获取JSON数据

然后你可以这样做:

var jsonVar = JSON.parse(xhReq.responseText);