如何使用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
答案 0 :(得分:4)
var str = '[["102",true,{"username":"someone"}]]';
var data = JSON.parse(str);
console.log("User: " + data[0][2].username);
someone
username
属性如果您使用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);