jQuery.parseJSON 与 jQuery.getJSON
我对使用 JSON(以及 jQuery 的 Ajax 功能)还很陌生。我想要做的是设置一个包含 JSON 对象的单独文件,指向该文件,将该对象存储为变量,并使用点表示法访问该对象的属性。
jQuery.parseJSON() 有点允许我做我想做的事情,但我想采取下一步指向一个单独的文件。
例如,以下行为完全符合我的预期,打开一个显示“红色”的警报框:
var test = $.parseJSON('{"simple":"red"}');
alert(test.simple);
以下指向包含相同 JSON 对象的文件,不起作用,打开一个显示“未定义”的警报框:
var test = $.getJSON('simple.json');
alert(test.simple);
显然我没有正确使用它。在这里实现我想要实现的目标的正确方法是什么?
I'm pretty new to using JSON (and to jQuery's Ajax features in general). What I'm trying to do is set up a separate file containing a JSON object, point to that file, store the object as a variable, and access the object's properties using dot notation.
jQuery.parseJSON() sort of allows me to do what I want, but I want to take the next step of pointing to a separate file.
For example, the following behaves exactly as I would expect, opening an alert box that says 'red':
var test = $.parseJSON('{"simple":"red"}');
alert(test.simple);
The following, which points to a file containing the same JSON object, doesn't work, opening an alert box that says 'undefined':
var test = $.getJSON('simple.json');
alert(test.simple);
I'm obviously not using this correctly. What's the correct way to do what I'm trying to achieve here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
查看 getJSON 文档: http://api.jquery.com/jQuery.getJSON/
你应该做类似的事情:
总是需要付费阅读 API 文档
Checkout the getJSON docs: http://api.jquery.com/jQuery.getJSON/
you should be doing something like:
always pays to read the API docs
我认为您误解了 getJSON。它不返回 JSON 对象,而是将 AJAX 请求的响应文本解析为 JSON 的简写形式。
当您调用 getJSON 时,您实际上是在执行异步请求。当您调用警报时,请求尚未返回。
尝试:
Shabba: http://api.jquery.com/jQuery.getJSON/
I think you've misunderstood getJSON. It doesn't return a JSON object, but is shorthand for parsing a response text from an AJAX request as JSON.
When you call getJSON, you're actually performing an asynchronous request. When you call alert, the request hasn't come back yet.
Try:
Shabba: http://api.jquery.com/jQuery.getJSON/
$.getJSON
向服务器发出 HTTP GET 请求并执行收到数据时的回调。或者,如果您使用的是 jQuery 1.5 或更高版本,则可以使用新的 jqXHR 语法。
$.getJSON
issues a HTTP GET request to the server and executes a callback when the data is received.Alternatively, if you are using jQuery 1.5 or later, you can use the new jqXHR syntax.
getJson 和 parseJson 的区别
jQuery.getJSON() 用于使用 GET HTTP 请求从服务器加载 JSON 编码的数据。
jQuery.parseJSON() 采用格式良好的 JSON 字符串,并且返回生成的 JavaScript 值。
换句话说
$.getJSON() 方法使用基于请求发送到的 URL 的 GET HTTP 请求从服务器加载 JSON 编码的数据。然后,您可以选择使用 $.parseJSON() 方法来解析 JSON 结构定义的 JavaScript 对象或数组。
Difference between getJson and parseJson
jQuery.getJSON() is used to load JSON-encoded data from the server using a GET HTTP request.
jQuery.parseJSON() takes a well-formed JSON string and returns the resulting JavaScript value.
In other words
The $.getJSON() method loads the JSON-encoded data from the server using a GET HTTP request based on a URL to which the request is sent. You may then choose to use $.parseJSON() method to parse the JavaScript object or array as defined by the JSON structure.
getJSON 用于加载数据,而不是解析
getJSON is for loading data, not parsing
$.get('路径/到/文件',
函数(数据){
我的变量=数据;
},
“json”
);
$.get('path/to/file',
function(data) {
my_variable = data;
},
"json"
);