我有json数组
这是我的代码
var conf_url = "https://192.168.236.33/confbridge_participants/conference_participants.json?cid=0090000007";
getParticipant(conf_url, function(output){
var uid = output.uid;
document.write(uid);
});
function getParticipant(conf_uri, handleData) {
$.ajax({
type: "GET",
url: conf_uri,
dataType: "jsonp",
jsonpCallback: 'callback',
contentType: "application/javascript",
success: function(data) {
handleData(data);
// console.log(data);
}
});
}
我想得到每个对象的内容
但我的输出未定义。 。我究竟做错了什么 ?请帮忙。
答案 0 :(得分:3)
您已遍历对象列表以输出值。你得到一个对象数组。
所以
data.forEach(function(obj){
console.log(obj['uid'])
})
以下内容将输出uid。
<强>更新强>
您正在将回调函数传递给Ajax请求。所以只需按照以下方式进行。
getParticipant(conf_url, function(data) {
data.forEach(function(obj){
document.write(obj['uid'])
})
});
function getParticipant(conf_uri, handleData) {
$.ajax({
type: "GET",
url: conf_uri,
dataType: "jsonp",
jsonpCallback: 'callback',
contentType: "application/javascript",
success: handleData(data);
});
}
直接将回调函数传递给ajax成功,你可以访问回调函数中ajax返回的数据。
答案 1 :(得分:1)
你需要一个循环来读取每个对象的uid。您的代码现在正在读取Array对象上的uid属性,这就是您获得未定义的
的原因答案 2 :(得分:1)
这个怎么样:
console.log(Object.keys(data).map(function(value, index){ return data[value].uid; }));
答案 3 :(得分:1)
var response = JSON.parse(data);
response.forEach(function(item){
console.log(item.uid);
});