我将此代码放在 php 文件中
[
{
"_id": "549f065925e1928098c74275",
"index": 0,
"guid": "c21b3720-430e-4be3-9309-e8afbabc0020",
"email": "browningriley@zilodyne.com",
"phone": "+1 (804) 417-2615",
"address": "657 Temple Court, Katonah, Mississippi, 7139",
"about": "Ut laborum ut nostrud dolore ut aute irure aliquip duis. Amet proident fugiat cupidatat nulla ullamco adipisicing ea excepteur. Proident in ullamco aute reprehenderit ea. Consequat non cupidatat id sit nostrud non. Velit amet exercitation incididunt aliqua deserunt cupidatat et ex.\r\n",
"registered": "2014-09-05T01:48:12 -03:00",
"latitude": -44.882099,
"longitude": 24.574332,
"tags": [
"officia",
"consectetur",
"incididunt",
"eu",
"magna",
"esse",
"elit"
],
"friends": [
{
"id": 0,
"name": "Billie Jarvis"
},
{
"id": 1,
"name": "Laurie Espinoza"
},
{
"id": 2,
"name": "Kate Stuart"
}
],
"greeting": "Hello, Browning Riley! You have 6 unread messages.",
"favoriteFruit": "banana"
},
{
"_id": "549f065925aa17df2fd6ebea",
"index": 1,
"guid": "9cf247e8-fe6b-4c42-a4a3-24ef7b907ad4",
"email": "bonitasharp@medalert.com",
"phone": "+1 (946) 506-2141",
"address": "414 Willoughby Avenue, Gila, California, 4696",
"about": "Aliqua aute tempor veniam sit esse velit anim. Proident amet aliqua ad non labore eu voluptate labore in amet exercitation irure. Qui laborum ea aliqua consectetur minim aliqua amet minim laborum sint fugiat ullamco nulla elit.\r\n",
"registered": "2014-02-11T20:29:39 -02:00",
"latitude": -19.03677,
"longitude": 138.137275,
"tags": [
"eu",
"non",
"et",
"nostrud",
"enim",
"proident",
"sint"
],
"friends": [
{
"id": 0,
"name": "Gamble Porter"
},
{
"id": 1,
"name": "Jami Bell"
},
{
"id": 2,
"name": "Mullen Alexander"
}
],
"greeting": "Hello, Bonita Sharp! You have 5 unread messages.",
"favoriteFruit": "strawberry"
}
]
现在尝试从此字符串中提取数据,如下所示
$("#get").on('click',function(){
$.get('data.php',function(data){
console.log(data);
var json_array = data;
var new_array = [];
$.each(json_array,function(i,o) {
new_array.push(o._id);
});
console.log(new_array);
});
});
但这就是结果“TypeError: invalid 'in' operand a”,正如您在此处看到的 in this online example 。 php文件是data.php,代码在script.js文件中
最佳答案
您需要做的就是将 dataType
设置为 'json'
或使用 $.getJSON()
自动设置 dataType。
这将告诉 $.ajax
期望什么并相应地解析它
$.get('data.php',function(data){
var myarray = data;
console.log(myarray);
var new_array = [];
$.each(myarray,function(i,o) {
new_array.push(o._id);
});
console.log(new_array);
$("#result").text(new_array);
},'json');/* last argument is "dataType" */
文件的内容 header 未作为 application/json
发送
关于php - 从 json 字符串中提取数据返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27671176/