【问题标题】:How to Replicate XMLHttpRequest For JSON如何为 JSON 复制 XMLHttpRequest
【发布时间】:2012-05-14 12:23:18
【问题描述】:

JSON 新手,只是想弄湿我的脚。

我知道如何通过 javascript 处理 XML,但我正在尝试学习如何处理 JSON 对象以便可以切换。

基本上我想搜索以下 JSON 对象中的所有“永久链接”标签,当我找到正确的标签时,将其对应的“标题”和“id”标签保存到 javascript 变量中: http://api.soundcloud.com/users/goldenstatewarriors/tracks.json?client_id=02db8e29aa2fb5bf590f478b73137c67

这可以只用 javascript(没有 PHP)来完成吗?我面临的主要问题只是从页面中抓取文本并将其转换为 json 对象。

【问题讨论】:

    标签: javascript json parsing xmlhttprequest external


    【解决方案1】:

    您需要使用 JSON 解析器来将 JSON 字符串转换为可以在 JavaScript 中本地处理的对象。最近的浏览器在 JSON.parse() 中内置了这个功能,但显然这在旧浏览器中不起作用(我们在这里谈论的是非常旧的浏览器)。

    解决该问题的方法是使用可用的 JSON 解析库 here。如果检测到本机浏览器支持,它会简单地使用它,否则它有一个 JavaScript 实现来实现相同的结果。您需要的文件是 json2.js - 只需像其他任何库一样包含它,然后就可以了!

    代码示例如下:

    var dataObject = JSON.parse(jsonData);
    

    顺便说一句,XMLHttpRequest 现在有点用词不当。它只是一种发出 HTTP 请求和检索返回数据的机制,它不必是 XML。它可以是纯文本、(非 X)HTML、JSON 等等。事实上,我认为我在 非常 很长一段时间内没有看到任何东西在野外返回 XMLHttpRequest 的实际 XML 数据。

    【讨论】:

    • 感谢您的快速回复。这是有道理的,但是我仍然不确定如何从外部站点(在我的情况下为 SoundCloud)获取 jsonData
    • 啊,所以根据您的编辑,我可以使用 HttpRequest 来简单地获取 JSON 文本?
    • 我修改了我的答案 - 基本上 XHR 请求不需要返回 XML。您将遇到的一个问题是同源策略。基本上这意味着你不能在没有一些愚蠢的情况下向不同的域发出请求。快速搜索 StackOverflow 和 en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing 应该会为您提供更多信息。或者,您可以使用服务器端脚本充当您的站点和 SoundCloud 之间的中介。
    • 真的没有用于获取外部 json 并使用 javascript 解析它的示例代码吗?我可以找到其他语言的示例,但仅限于使用 js:/
    • 代码非常简单(答案中的内容可以正常工作),但由于它是跨域的,因此可能会有点困难。我真的建议您阅读该主题,这是可能的,但您只需要先进行一些配置。
    猜你喜欢
    • 2017-01-23
    • 1970-01-01
    • 2011-08-10
    • 2016-12-14
    • 2017-09-27
    • 2011-02-08
    • 2021-08-18
    • 2021-01-30
    • 1970-01-01
    相关资源
    最近更新 更多