-1

私は自分のphpページからこのjsonを返しますが、jqueryはそれをデコードできず、結果は常にnullです。

{
    "City": [
        {
            "CityID": "1",
            "CityName": "istanbul"
        },
        {
            "CityID": "2",
            "CityName": "Ankara"
        }
    ]
}

Jqueryコード:

     $.getJSON("handlers/cityhandler.php", function(json){
    var result = jQuery.parseJSON(json);
console.log(result[0].City.CityID);

Jqueryの代替コード:

$.getJSON("handlers/cityhandler.php", function(json){
            $.each(json, function(i,City){
                    $("#selectcity").append('<option value="' + City.CityID + '">' + City.CityName + '</option>');
            });
4

3 に答える 3

3
console.log(json.City[0].CityID);​
于 2012-11-18T21:13:44.903 に答える
2

データは受信時にすでに解析されているため、を呼び出す必要はありません$.parseJSON。さらに、nullポインター例外が発生する理由result[0]は、が存在しないためです。結果は連想配列であり、通常の配列ではありません。

$.getJSON("handlers/cityhandler.php", function(json){

    console.log(json.City[0].CityID);
});

2回目の試みも正しくありません。都市をループしようとしている場合は、内側の配列をループする必要があります。

$.getJSON("handlers/cityhandler.php", function(json){
    $.each(json.City, function(i, val){
        $("#selectcity").append('<option value="' + val.CityID + '">' 
            + val.CityName + '</option>');
    });
});
于 2012-11-18T21:12:18.717 に答える
0

JSON出力は有効なJSONであるため、問題はそこから発生していません。これがまさにjQueryハンドラーが受け取るものであると確信していますか?

ちなみに、result [0]は存在しません!最上位の要素はオブジェクトであり、配列ではありません。

于 2012-11-18T21:09:46.697 に答える