如果我有以下JSON数据:
{"response":"success","data":[{"id":"2"}]}
我试图获取通过2
发送的ID。
我尝试过以下方法:
var r = JSON.parse('{"response":"success","data":[{"id":"2"}]}');
if(r.response=="success"){
var usr = r.data;
console.log(usr.id);
}
以上输出undefined
。
var r = JSON.parse('{"response":"success","data":[{"id":"2"}]}');
if(r.response=="success"){
var usr = r.data;
for(var k in usr){
if(usr.hasOwnProperty(k)){
console.log(usr.k);
}
}
}
以上输出undefined
。
var r = JSON.parse('{"response":"success","data":[{"id":"2"}]}');
if(r.response=="success"){
var usr = r.data;
var ret = [];
for(var key in usr){
ret.push(key);
}
console.log(ret);
}
以上输出0
。
var r = JSON.parse('{"response":"success","data":[{"id":"2"}]}');
if(r.response=="success"){
var usr = JSON.parse(r.data);
console.log(usr.id);
}
以上输出错误 - 请记住这是通过Nativescript运行,因此模拟环境(Android模拟器)可能会导致此错误:
chromium: [INFO:library_loader_hooks.cc(120)] Chromium logging enabled: level = 0, default verbosity = 0 01-26 19:20:55.423 4875 4875 I BrowserStartupController: Initializing chromium process, singleProcess=true chromium: [WARNING:resource_bundle.cc(285)] locale_file_path.empty() 01-26 19:20:55.441 4875 4875 E DataReductionProxySettingListener: No DRP key due to exception:java.lang.ClassNotFoundException: com.android.webview.chromium.Drp chromium: [WARNING:data_reduction_proxy_config.cc(423)] SPDY proxy OFF at startup
如何使用JavaScript访问以下JSON字符串中id
的{{1}}属性:
data
答案 0 :(得分:2)
您可以尝试使用以下代码。您首先需要访问data
属性,然后由于data
是一个数组,您需要一个索引来访问第一个元素,如data [0] Property,然后id
属性可以是由r.data[0].id
var r = JSON.parse('{"response":"success","data":[{"id":"2"}]}');
if(r.response === "success"){
console.log(r.data[0].id)
}

答案 1 :(得分:1)
您可以访问console.log(usr[0].id);
答案 2 :(得分:1)
您的数据值是数组而不是对象
首次尝试时,请更新:
console.log(usr.id);
到此:
console.log(usr[0].id);
或者你可以做一个for循环:
if(r.response=="success"){
var usr = r.data;
for(i=0; i < usr.length; i++) {
console.log(usr[i].id);
}
}
答案 3 :(得分:0)
您的数据对象是一个数组,因此您必须先访问数组的位置:
usr[0]
你得到了id值
usr[0].id
如果要直接使用usr.id
访问,则需要将JSON数据对象数组更改为简单对象:
{"response":"success","data":{"id":"2"}}
或做出丑陋的重新签名:
usr = usr[0]
答案 4 :(得分:0)
这是因为您使用了[]只使用{}。如果使用[],那么它是一个数组属性,然后要访问2,应该使用[0] .id。
从[{“id”:“2”}删除[]}