0

json オブジェクトを正常に返す main.php を呼び出す index.html ファイルがあります。

main.php はこれを返します

{
    "products": [
        {
            "id": "1",
            "txt": "Bar",
            "image": "",
            "page": ""
        },
        {
            "id": "2",
            "txt": "Car",
            "image": "",
            "page": ""
        },
        {
            "id": "3",
            "txt": "Far",
            "image": "",
            "page": ""
        }
    ],
    "success": 1
}

Java には json.getJSONArray(TAG_PRODUCTS); があります。

しかし....私はここでHTMLとjavascriptを使用しています...だから、私のhtmlファイルには次のように書かれています。

$.ajax({
    type: 'POST',
    dataType: 'json',
    url: 'http://localhost:8888/HelloWorld/main.php',
    contentType: "application/json; charset=utf-8",
    success: function (data) { 
        var names = data
        $('sa_content').append('<select name="input_4">');
        $.each(data, function(index, element) {

            alert( "index: " + index + ", element.cf_id: " + element );

        });
        $('sa_content').append('</select>');
    },
    error: function(){
        $('#sa_content').append('<li>There was an error loading the feed');
    }
});

index.html ページを実行すると、次のアラートが表示されます

index = products, element =  [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

index = success, element =  1

では、products 配列を json から取り出して反復処理し、id、txt、image、page の値を取得するにはどうすればよいでしょうか?

お時間をいただきありがとうございます。ディーンオー

4

4 に答える 4

3

これを成功関数として使用してみてください。

function (data) {
    var products = data.products;

    for (var i = 0; i < products.length; i++) {
        var product = products[i];
        alert(product.id + " " + product.txt + " " + product.image + " " + product.page);
    }
}

すべての製品を繰り返し処理し、データを警告する必要があります。次に、必要に応じてコードを変更できます。

于 2012-10-24T00:28:57.093 に答える
0

を使用するかJSON.parse、単にeval('(' + json + ')');コードが安全であることが確実な場合に使用します。

于 2012-10-24T00:28:15.353 に答える
0

製品の配列を取得しているので、その配列を反復処理します。

success: function (data) { 
    var names = data

    for(i = 0; i < data.products.length; i++) {
        //Do what you want.
        var id = data.products[i].id;
    }
}
于 2012-10-24T00:29:08.537 に答える
0

ページが json のみを返す場合、jquery ajax から返される XHR オブジェクトには、そのデータから構築された javascript オブジェクトが含まれている必要があります。そうでない場合は、json でエンコードされた文字列以上を返すなど、ページに何か問題があります。

于 2012-10-24T00:31:49.193 に答える