Kit*_*Kit 2 javascript url json
我有一个http://myapp.com/get_data返回的URL application/json Content-Type.当我浏览到该URL时,我会在浏览器窗口中获得纯文本JSON数组
[[key, value],
[key, value],
[key, value],
...]
Run Code Online (Sandbox Code Playgroud)
我还有一个JavaScript函数,期望数据采用JSON数组格式
function process_data() {
var data = // give me more data in JSON array format...
}
Run Code Online (Sandbox Code Playgroud)
如何让我的JavaScript浏览http://myapp.com/get_data并将生成的JSON数组分配到data变量里面process_data()?
我是JavaScript新手(来自Python背景),如果你能推荐使用核心JavaScript库的解决方案,我将不胜感激.也欢迎使用其他库的解决方案,最好是那些被认为是最佳实践的解决方案.
看来我对我的问题并不清楚.让我举一个Python的例子.做完必要的进口后,我可以做点什么
url = "http://myapp.com/get_data"
page = urllib2.urlopen(url)
page_source = page.read()
Run Code Online (Sandbox Code Playgroud)
这一次,page_source已经是str我可以轻松玩的Python 对象,分配给其他变量等.如果我可以将Python和JavaScript混合在一起,对于这个问题的上下文,我想做类似的事情
function process_data() {
url = "http://myapp.com/get_data"
page = urllib2.urlopen(url)
page_source = page.read()
var data = convert_str_to_JSON(page_source)
}
Run Code Online (Sandbox Code Playgroud)
当然,这只是代码的一个丑陋的混乱,但我希望它传达了我想要的东西:
GET是一个URL.较新的浏览器本机支持JSON解析.
你可以说JSON.parse('json data').对于较旧的浏览器(例如IE 7或6),您可以使用此库:https://github.com/douglascrockford/JSON-js
使用json2.js上面的库.它检查是否存在本机浏览器实现,如果不存在,则添加它.
不要使用eval(因为eval是邪恶的)!
更新:要获取'json数据',请使用以下命令:
var jsonObject = {};
var xhr = new XMLHttpRequest();
xhr.open( "GET", url, true ); // true makes this call asynchronous
xhr.onreadystatechange = function () { // need eventhandler since our call is async
if ( xhr.readyState == 4 && xhr.status == 200 ) { // check for success
jsonObject = JSON.parse( xhr.responseText );
}
};
xhr.send(null);
Run Code Online (Sandbox Code Playgroud)
另外,我建议阅读本文以了解跨浏览器问题和XMLHttpRequest对象的实现.
| 归档时间: |
|
| 查看次数: |
4468 次 |
| 最近记录: |