Php 未捕获类型错误:无法使用';在';jquery/json中的运算符

Php 未捕获类型错误:无法使用';在';jquery/json中的运算符,php,jquery,json,Php,Jquery,Json,我在php中创建一个json,如下所示: $details= array(); $ret = array(); for($i=0;$i<3;$i++) { $details["name"] = "name".$i; $ret[] = $details;} 在jQuery ajax中: echo json_encode($ret,JSON_UNESCAPED_UNICODE); die(); $.ajax({ url: "index2.php?id=upload",

我在php中创建一个json,如下所示:

$details= array();
$ret = array();

for($i=0;$i<3;$i++) { $details["name"] = "name".$i;  $ret[] = $details;}
在jQuery ajax中:

echo json_encode($ret,JSON_UNESCAPED_UNICODE);
die();
$.ajax({
    url: "index2.php?id=upload",
    type: "POST",
    data:  new FormData($("#form")[0]),
    contentType: false,
    cache: false,
    processData:false,
    returnType:"json",
    success: function(data)
    {
        console.log('names:'+JSON.stringify(data));
        $.each(data, function(i) 
        { 
            console.log('name:'+data[i]['name']);
         }
    },
第一个控制台日志打印,但第二个: 我得到这个错误:

jquery-2.2.3.min.js:2未捕获类型错误:无法使用“in”运算符 在中搜索“长度” [{“名称”:“名称1”},{“名称”:“名称2”},{“名称”:“名称3”}]

我也尝试

$.each(JSON.parse(data), function(i) 
                { ..}
但我打印的是空的:

名称:未定义


当javascript将json字符串转换为javascript数据类型时,它将是如下所示的对象数组

Array
(
    [0] => stdClass Object
        (
            [name] => name0
        )

    [1] => stdClass Object
        (
            [name] => name1
        )

    [2] => stdClass Object
        (
            [name] => name2
        )

)
因此,您的javascript应该是

另外
returnType:“json”
应该是
dateType:“json”
据我所知,没有
returnType:

   $.ajax({
        url: "index2.php?id=upload",
        type: "POST",
        data:  new FormData($("#form")[0]),
        contentType: false,
        cache: false,
        processData:false,
        dateType:"json",
        success: function(data)
        {
            console.log('names:'+JSON.stringify(data));
            $.each(data, function(i,v) 
            { 
                console.log('name:'+v.name);
            }
        },

当javascript将json字符串转换为javascript数据类型时,它将是如下所示的对象数组

Array
(
    [0] => stdClass Object
        (
            [name] => name0
        )

    [1] => stdClass Object
        (
            [name] => name1
        )

    [2] => stdClass Object
        (
            [name] => name2
        )

)
因此,您的javascript应该是

另外
returnType:“json”
应该是
dateType:“json”
据我所知,没有
returnType:

   $.ajax({
        url: "index2.php?id=upload",
        type: "POST",
        data:  new FormData($("#form")[0]),
        contentType: false,
        cache: false,
        processData:false,
        dateType:"json",
        success: function(data)
        {
            console.log('names:'+JSON.stringify(data));
            $.each(data, function(i,v) 
            { 
                console.log('name:'+v.name);
            }
        },

关于
data[i].name
var newData=JSON.stringify(data);$。每个(newData,function(i){console.log('name:'+newData[i]['name']);//或检查一下newData[i].name}
显示实际进入浏览器的JSON,而不是生成它的PHP代码。此外,引用的代码根本不会运行(语法错误,不仅仅是在结尾)。与其重新键入您询问的代码,不如复制并粘贴它以避免引入不相关内容。向我们显示
console.log('names:'+JSON.stringify(data));
使用链接修改您的问题。不要将其放在注释中
data[i].name
var newData=JSON.stringify(data);$。每个(newData,function(i){console.log('name:'+newData[i]['name']);//或者检查一下newData[i].name}
显示实际进入浏览器的JSON,而不是生成它的PHP代码。此外,引用的代码根本不会运行(语法错误,不仅仅是在结尾)。与其重新键入您询问的代码,不如复制并粘贴它,以避免引入不相关内容。向我们显示
console.log('names:'+JSON.stringify(data));
使用链接修改您的问题。不要将其放在评论中