获取json返回数据的值

时间:2014-02-19 12:48:28

标签: javascript jquery json

我正在进行ajax调用以检索数据。数据是这样的:

[{"id":"16","location_name":"agga"}]

这是因为php返回:echo json_encode($getLoc);

现在在javascript中我需要将输入值更改为给定ID的json,并将位置名称显示为div中的字符串。我怎么能这样做?

我尝试了什么:

data.id undefined data [0] .id ..undefined 数据显示[{"id":"16","location_name":"agga"}]

然后我想我可能需要循环所以我每次都做了一个jquery ......但是这也没有返回任何内容..

所以现在我来到这里,我做错了什么?

代码:

 $('#deliveryzip').on('change', function(){

    //Get zip first 4 chars
    var zip = $('#deliveryzip').val().substring(0,4);

        //Check if zip is integer
        if (isNaN(zip)) {
            //alert("zip klopt niet");
            return false;
        }

    //Get locationID from zipcode
    $.post(jssitebaseUrl+'/ajaxFile.php',{"zip":zip,"action":"getLocInfo"},function(data){

        $("#locInfo2").html(data); //shows the json returned object
        var show = true;
        return false;
    });   

4 个答案:

答案 0 :(得分:1)

您需要使用JSON.parse。快速举例;

<强> HTML:

<input type="text" name="test" id="test" value=""/>
<input type="button" name="update" id="update" value="Update"/>

<强> JS:

$("#update").on("click", function() {
    $("#test").val(json[0].id);
})
var a = '[{"id":"16","location_name":"agga"}]';
var json = JSON.parse(a);

您可在此处看到演示: http://jsfiddle.net/y8TwH/

答案 1 :(得分:0)

尝试这种模式

        var json = [{ "id": "16", "location_name": "agga"}];
        alert(json[0]["id"]);
        alert(json[0]["location_name"]);
        $("#locInfo2").html(json[0]["location_name"]);

答案 2 :(得分:0)

是来自响应的数据变量是json格式的字符串吗? 如果是这样,那么:

obj = JSON.parse(data);
alert(obj[0].id);

答案 3 :(得分:0)

json_encode返回一个JSON 字符串,因此您需要先将JSON解析为一个对象然后访问该数据,即

//Get locationID from zipcode
$.post(jssitebaseUrl+'/ajaxFile.php',{"zip":zip,"action":"getLocInfo"},function(data){
    var location = JSON.parse(data)[0]; // take first item as you appear to receive an array with 1 item
    $('#' + location.id).val(location.location_name); 
    var show = true;
    return false;
});