【发布时间】:2011-10-26 16:29:51
【问题描述】:
我有一个返回 application/json Content-Type 的 URL http://myapp.com/get_data。当我浏览到那个 URL 时,我会在我的浏览器窗口中得到一个纯文本 JSON 数组
[[key, value],
[key, value],
[key, value],
...]
我还有一个 JavaScript 函数,它要求数据为 JSON 数组格式
function process_data() {
var data = // give me more data in JSON array format...
}
如何让我的 JavaScript 浏览到 http://myapp.com/get_data 并将生成的 JSON 数组分配到 process_data() 内的 data 变量中?
我是 JavaScript 新手(来自 Python 背景),如果您能建议使用核心 JavaScript 库的解决方案,我将不胜感激。也欢迎使用其他库的解决方案,最好是那些被认为是最佳实践的解决方案。
更新
看来我的问题并不清楚。让我提供一个 Python 的例子。完成必要的导入后,我可以做类似的事情
url = "http://myapp.com/get_data"
page = urllib2.urlopen(url)
page_source = page.read()
这一次,page_source 已经是一个 Python str 对象,我可以轻松地使用它,分配给其他变量等。如果我可以将 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)
}
当然,这只是一个丑陋的代码混搭,但我希望它传达了我想要表达的意思:
- JavaScript 将
GET一个 URL。 - 阅读源代码。
- 将源解释为 JSON。
- 将其分配给变量。
【问题讨论】:
-
首先,您在示例中显示的 json 不是 json。它是一个数组数组。
-
将[[key, value], [key, value], [key, value], ...]复制到jsonlint.com并检查有效性。请粘贴您的实际回复。
-
@naveen。是的,我的示例本身就是无效的 JSON。
key和value是占位符。 JSONLint 没有说数组数组是错误的。它只抱怨预期的数据类型。[["key", "value"], ["key", "value"]]已经足够好了。 -
我已更正。我一直认为它们会被包装到父对象
标签: javascript json url