【问题标题】:Converting JSON using jQuery使用 jQuery 转换 JSON
【发布时间】:2014-01-01 17:18:14
【问题描述】:

作为参考,这是我正在使用的 JSON:http://goo.gl/xxHci0

在常规 JavaScript 中,使用下面的代码可以正常工作,我可以轻松操作它:

var info = JSON.parse(document.getElementsByTagName("pre")[0].innerHTML);
alert(info[0]["AssetId"]);

但我正在开发相同代码的 jQuery 版本,以避免使用像 iFrames 这样的方法来获取这些数据。我的 jQuery 函数是:

$.get (
    page,
    function parse(data) {
        var r = $.parseJSON(data);
        alert(r[0]["AssetId"]);
    }
);

我找到了使用 jQuery 转换 JSON 的方法,但我无法找到需要转换的 JSON 代码的位置。

【问题讨论】:

  • 您从get() 请求中得到什么响应?响应是您想要转换为 JSON 的内容。
  • @Lix,我请求这个页面goo.gl/xxHci0

标签: javascript jquery json get


【解决方案1】:

如果来自服务器的响应是 JSON 对象的有效字符串表示,您将能够为 get() 请求指定 dataType。你可以这样做:

$.get( page, function( data ) {
  alert( data[0]["AssetId"] );
}, "json" ); // <-- here is the dataType

使用正确的dataType 设置,您将无需手动解析数据,它将作为 JSON 对象到达您的回调函数。

参考资料:

  • $.get()

    jQuery.get( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )

【讨论】:

  • 很高兴帮助@Alex。编码愉快!
【解决方案2】:

您可以使用getJson。这会将您的 JSON 字符串转换为 JavaScript 对象。

我使用 facebook graph api 为你将 JSFiddle 放在一起:

http://jsfiddle.net/J4LCX/

$.getJSON( "http://graph.facebook.com/spikeh/",
    function( data ) {
        alert(data.id);
    });

或者,要修复您的代码,只需直接引用对象的 id:

$.get (
    "http://graph.facebook.com/spikeh/",
    function parse(data) {
        alert(data.id);
    }
);

JsFiddle:http://jsfiddle.net/LBy9y/

【讨论】:

    猜你喜欢
    • 2013-08-23
    • 2014-11-18
    • 1970-01-01
    • 2017-12-01
    • 2011-04-08
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    相关资源
    最近更新 更多