如何读取 Jquery ajax 中名称和值对中的 JSONP 响应数据?
How to read JSONP response data in name and value pairs in Jquery ajax.?
我正在尝试使用 JSONP 技术从其他域读取 JSON 文件
这是JSON
callback({
"response":{"docs":[
{
"FirstName":"qwe",
"LastName":"asd",
"Age":"30"},
{
"FirstName":"zxc",
"LastName":"bnm",
"Age":"40"},
.
.
.
{
"FirstName":"poi",
"LastName":"lkj",
"Age":"20"},
]},
})
这是Jquery代码
$.ajax({
type: "GET",
url: "http://qqq.com/",
crossDomain: true,
jsonpCallback: 'callback',
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function (msg) {
$.each(msg.response.docs, function (key, value){
alert(key +"is"+value);
}
});
根据上面的代码,我希望得到的警报输出为
FirstName is qwe
LastName is asd
and so on
但我收到的警报是
0 is [object Object]
1 is [object Object]
and so on
我能知道我需要做什么才能像我期望的那样
FirstName is qwe
LastName is asd
提前致谢
你应该先迭代一个数组,然后在单个对象中迭代:
像这样:
success: function (msg) {
$.each(msg.response.docs, function (singleDoc){
$.each(singleDoc, function (key, value){
alert(key +"is"+value);
}
}
}
您的 $each
函数正在遍历 docs
数组。传递给它的参数将是:
key
: 文档对象索引
val
: 文档对象本身
相反,您可能还想用另一个循环遍历每个(键,值)对:
success: function (msg) {
$.each(msg.response.docs, function (index, doc){
$.each(doc, function (key, val) {
console.log(key + 'is' + val);
});
}
}
当你使用 jquery 的每个方法时,你会得到索引作为第一个参数,在第二个参数中你会得到每个对象的迭代顺序。
所以你需要使用这样的代码
$.each(msg.response.docs, function (key,value){
console.log('FirstName is '+value.FirstName);
console.log('LastName is'+value.LastName);
.
.
.
});
我正在尝试使用 JSONP 技术从其他域读取 JSON 文件
这是JSON
callback({
"response":{"docs":[
{
"FirstName":"qwe",
"LastName":"asd",
"Age":"30"},
{
"FirstName":"zxc",
"LastName":"bnm",
"Age":"40"},
.
.
.
{
"FirstName":"poi",
"LastName":"lkj",
"Age":"20"},
]},
})
这是Jquery代码
$.ajax({
type: "GET",
url: "http://qqq.com/",
crossDomain: true,
jsonpCallback: 'callback',
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function (msg) {
$.each(msg.response.docs, function (key, value){
alert(key +"is"+value);
}
});
根据上面的代码,我希望得到的警报输出为
FirstName is qwe
LastName is asd
and so on
但我收到的警报是
0 is [object Object]
1 is [object Object]
and so on
我能知道我需要做什么才能像我期望的那样
FirstName is qwe
LastName is asd
提前致谢
你应该先迭代一个数组,然后在单个对象中迭代:
像这样:
success: function (msg) {
$.each(msg.response.docs, function (singleDoc){
$.each(singleDoc, function (key, value){
alert(key +"is"+value);
}
}
}
您的 $each
函数正在遍历 docs
数组。传递给它的参数将是:
key
: 文档对象索引val
: 文档对象本身
相反,您可能还想用另一个循环遍历每个(键,值)对:
success: function (msg) {
$.each(msg.response.docs, function (index, doc){
$.each(doc, function (key, val) {
console.log(key + 'is' + val);
});
}
}
当你使用 jquery 的每个方法时,你会得到索引作为第一个参数,在第二个参数中你会得到每个对象的迭代顺序。
所以你需要使用这样的代码
$.each(msg.response.docs, function (key,value){
console.log('FirstName is '+value.FirstName);
console.log('LastName is'+value.LastName);
.
.
.
});