2012-07-07 40 views
2

我想解析外部网站上的一些json,但我遇到了麻烦。它必须与JavaScript或JQuery一样,因为它是用于Chrome扩展的。为了说明问题: 我需要使用json {“_visitor_alertsUnread”:“0”}从外部URL获取数字,并将返回的数字设置为一个变量。我如何去做这件事?使用JavaScript从外部网站解析json

我已经试过几件事情,如JSON.parse,但是它不工作:(

总之:我如何得到这个JSON,这是对外部站点的数量,并将其设置为一个变量?

+0

你提的问题是非常* *含糊。你应该尝试把它归结为更具体的东西(最好用一些代码示例)。 – hugomg 2012-07-07 02:31:43

+0

好吧,对不起,我只是想弄清楚如何从外部网站上的json页面获取数字。 – hawkfalcon 2012-07-07 02:35:55

+2

1.使用ajax获取数据(有用的:http://api.jquery.com/jQuery.ajax/)。 2.解析JSON。 (简单的js对象值解引用)。尝试执行此操作,如果它不起作用,请使用特定的错误和您尝试的代码更新您的问题。祝你好运! :) – nbrooks 2012-07-07 02:40:54

回答

3

在Javascript不能从外部URL获取数据(在不同的域),除非该网站支持JSONP或跨来源资源共享。如果是的话,然后用XMLHttpRequest得到th e数据和JSON.parse()来阅读它。

脚本:

var xhr = new XMLHttpRequest(); 
xhr.open('GET', 'example.com/json', true); 

xhr.onload = function() { 
    var unread = window.JSON.parse(xhr.responseText)._visitor_alertsUnread; 
}; 

xhr.onerror = function() { 
    //process error 
}; 

xhr.send(); 
+0

这正是我一直在寻找的感谢!它支持交叉orgin :) – hawkfalcon 2012-07-08 21:17:45

2

尝试对http://api.jquery.com/jQuery.getJSON/

$.getJSON('your_url', function (jsonobj) { 
    var unread; 
    unread = jsonobj._visitor_alertsUnread; 
}); 
+0

+1这种方式在我的最后一个项目中与我一起工作,但该文件在同一个域中, – mfadel 2012-07-08 07:44:52

+0

谢谢,但XHR在我的情况下效果更好:) – hawkfalcon 2012-07-08 21:19:23