Jquery 如何正确地将$用于json数组?

Jquery 如何正确地将$用于json数组?,jquery,each,Jquery,Each,你好 首先在php中生成json: 第二个-jquery: 请告诉我为什么会出现错误以及如何正确使用$。每个?当您通过Ajax创建请求时,它将使用输出的数据 当您使用“return”时,您不会输出任何内容 您必须将“return”更改为“echo”或“print”或其他任何内容。您应该用文件替换数据.d 它需要一个对象或数组来迭代 :- 元。每个 :-一个通用迭代器函数,可用于无缝迭代对象和数组 因此,文件是您的对象,而不是data.d $("#form").ajaxForm({

你好

首先在php中生成json:

第二个-jquery:


请告诉我为什么会出现错误以及如何正确使用
$。每个

当您通过Ajax创建请求时,它将使用输出的数据

当您使用“return”时,您不会输出任何内容


您必须将“return”更改为“echo”或“print”或其他任何内容。

您应该用
文件替换
数据.d
它需要一个对象或数组来迭代 :-

元。每个

:-
一个通用迭代器函数,可用于无缝迭代对象和数组

因此,文件是您的对象,而不是data.d

$("#form").ajaxForm({
            url:        './index.php?page=test',
            success:    function(data){
            var files = JSON.parse(data);
            console.log(files);
            //files in console.log:
            // Object {1: "./DIR/90_1409499383.jpg", 
            //         2: "./DIR/90_1409499383.jpg"} 
            $.each(files, function(key, value) {
                console.log('test' + key + ":" + value)
            });



            }
        }).submit();
这是我试图纠正的

$("#form").ajaxForm({
    url : './index.php?page=test',
    //you miss this
    dataType : 'json',
    success : function(data){
        // your server return data not data.d
        $.each(data, function(key, value) {
            console.log('test' + key + ":" + value);
        });
    }
}).submit();
您可以使用
标题('Content-Type:application/json'),这样就不必在客户端使用
JSON.parse

$ArrImage = array();
foreach(...){
    $ArrImage[] = $PathToThumbnailImage;
}
header('Content-Type: application/json');
echo json_encode($ArrImage);
当您不确定返回的内容是否为JSON时,您可以编写:

success: function( data ) {
    data = $.type( data ) === 'string' ? JSON.parse( data ) : data;
    $.each(data, function( key, value ) {
    .......
    });
}
....

bcoz文件是您解析的对象尝试在服务器中使用echo not return,然后告诉我在conole.log中看到了什么
$ArrImage = array();
foreach(...){
    $ArrImage[] = $PathToThumbnailImage;
}
header('Content-Type: application/json');
echo json_encode($ArrImage);
success: function( data ) {
    data = $.type( data ) === 'string' ? JSON.parse( data ) : data;
    $.each(data, function( key, value ) {
    .......
    });
}
....