检索纯文本JSON,插入JavaScript

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库的解决方案,我将不胜感激.也欢迎使用其他库的解决方案,最好是那些被认为是最佳实践的解决方案.

UPDATE

看来我对我的问题并不清楚.让我举一个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)

当然,这只是代码的一个丑陋的混乱,但我希望它传达了我想要的东西:

  1. JavaScript将GET是一个URL.
  2. 阅读来源.
  3. 将源解释为JSON.
  4. 将其分配给变量.

Mrc*_*ief 7

较新的浏览器本机支持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对象的实现.