-1

我从我的 php 页面返回这个 json,但 jquery 无法解码它,结果始终为空。

{
    "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. 此外,您收到空指针异常的原因是因为result[0]不存在:结果是关联数组,而不是常规数组。

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

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

你的第二次尝试也不对;如果您尝试遍历城市,则必须遍历内部数组:

$.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 处理程序接收到的吗?

旁注,结果 [0] 不存在!您的顶部元素是一个对象,而不是一个数组!

于 2012-11-18T21:09:46.697 回答