【问题标题】:Getting json object获取json对象
【发布时间】:2012-05-17 16:10:19
【问题描述】:

第一次使用json。我目前将邮政编码发送到 php 页面,并尝试将结果存储为 json:

    $("#make_ajax_call").click(function()
    {
        var form_postcode = $("#postcode").val();
        $.ajax({
            type: "POST",
            url: 'mapping-ajax.php',
            data: { postcode: form_postcode},
            success: function(data)
            {
                var jsonObject = data;
                var trimmedpostcode = jsonObject.trimmedpostcode;
                alert(jsonObject);
                alert(jsonObject.trimmedpostcode);
                $('#result').html(data);
                //alert('Load was performed.');
            }
        });
    });

另一端我使用了一个php函数echo json_encode($return_array);

这两个警报给了我:

{"trimmedpostcode":"CO125WL","success":true,"outputstring":"CO125WL<br\/>"}

Undefined

为什么第二个不返回“CO125WL”?我需要以某种方式告诉 javascript 它是一个 json 对象吗?

【问题讨论】:

    标签: json get


    【解决方案1】:

    你试过了吗:

    dataType: 'json'
    

    这就是我使用 ajax 调用在 Javascript 中提取我的 json 信息的方式。

    【讨论】:

      【解决方案2】:

      你明白了。您需要致电:

      var obj = JSON.parse(jsonstr);
      

      这会将 JSON 解析为 JavaScript 对象。

      【讨论】:

      • 效果很好,谢谢!不过,您回答得太快了,我无法接受,只要stackoverflow允许我,我就会。 var obj = JSON.parse(data); alert(obj); alert(obj.trimmedpostcode);
      • 你不应该。 $.ajax 能够解析 JSON 本身,使用它。
      • 没问题。仅供参考,其他答案同样正确。你可以设置数据类型,jQuery会自动为你调用这个方法。
      【解决方案3】:

      我需要以某种方式告诉 javascript 它是一个 json 对象吗?

      是的,你需要告诉它这是一个 json 字符串。将响应的 mimetype 设置为适当的“application/json”,jQuery 的智能将自动解析文本并使用对象而不是字符串调用您的 success 函数。

      或者您可以将 jQuery 调用的 dataType 设置为 "json",请参阅 jQuery.ajax() documentation

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-15
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 2022-11-27
        • 2022-01-24
        相关资源
        最近更新 更多