php - 从 json 字符串中提取数据返回错误

标签 php jquery arrays json

我将此代码放在 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 发送

DEMO

关于php - 从 json 字符串中提取数据返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27671176/

相关文章:

php - 按 30 天内销量排序产品,然后是没有销量的产品

php - mysql 从多个表中选择,即使一个表不包含 where 子句

javascript - 在显示页面之前完全下载图像

jquery - REM 作为大众响应式 CSS 站点

python - 为什么这个 python 类不能与 numba jitclass 一起使用?

php - 通过 MySQL 连接 3 个表

php - 在 Laravel 中设置 DocumentRoot

jquery - 共享点 2010 : Image preview on hover in New Item Form

javascript - Mongo 将 $slice 聚合到特定值而不是数组

php - 在 PHP 中获取数组的所有其他值