jQuery.parseJSON 与 jQuery.getJSON

发布于 2024-10-30 16:23:02 字数 465 浏览 1 评论 0原文

我对使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

橘和柠 2024-11-06 16:23:02

查看 getJSON 文档: http://api.jquery.com/jQuery.getJSON/

你应该做类似的事情:

$.getJSON('simple.json', function(data) {
  alert(data.simple);
});

总是需要付费阅读 API 文档

Checkout the getJSON docs: http://api.jquery.com/jQuery.getJSON/

you should be doing something like:

$.getJSON('simple.json', function(data) {
  alert(data.simple);
});

always pays to read the API docs

彻夜缠绵 2024-11-06 16:23:02

我认为您误解了 getJSON。它不返回 JSON 对象,而是将 AJAX 请求的响应文本解析为 JSON 的简写形式。

当您调用 getJSON 时,您实际上是在执行异步请求。当您调用警报时,请求尚未返回。

尝试:

var test;
$.getJSON('simple.json', {}, function(data) {
  test = data;
  alert(test.simple);
});

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:

var test;
$.getJSON('simple.json', {}, function(data) {
  test = data;
  alert(test.simple);
});

Shabba: http://api.jquery.com/jQuery.getJSON/

一页 2024-11-06 16:23:02

$.getJSON 向服务器发出 HTTP GET 请求并执行收到数据时的回调。

$.getJSON('simple.json', function(data) {
    alert(data.simple);
});

或者,如果您使用的是 jQuery 1.5 或更高版本,则可以使用新的 jqXHR 语法。

$.getJSON('simple.json')
 .success(function(data) {
    alert(data.simple);
 });

$.getJSON issues a HTTP GET request to the server and executes a callback when the data is received.

$.getJSON('simple.json', function(data) {
    alert(data.simple);
});

Alternatively, if you are using jQuery 1.5 or later, you can use the new jqXHR syntax.

$.getJSON('simple.json')
 .success(function(data) {
    alert(data.simple);
 });
音盲 2024-11-06 16:23:02

getJson 和 parseJson 的区别

jQuery.getJSON() 用于使用 GET HTTP 请求从服务器加载 JSON 编码的数据。

$.getJSON( "ajax/test.json", function( data ) {  
    $.each( data, function( key, val ) {    
        //your actions
});

jQuery.parseJSON() 采用格式良好的 JSON 字符串,并且返回生成的 JavaScript 值。

var obj = jQuery.parseJSON( '{ "name": "John" }' );

换句话说

$.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.

$.getJSON( "ajax/test.json", function( data ) {  
    $.each( data, function( key, val ) {    
        //your actions
});

jQuery.parseJSON() takes a well-formed JSON string and returns the resulting JavaScript value.

var obj = jQuery.parseJSON( '{ "name": "John" }' );

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.

寂寞陪衬 2024-11-06 16:23:02

getJSON 用于加载数据,而不是解析

使用 GET HTTP 请求从服务器加载 JSON 编码的数据。

getJSON is for loading data, not parsing

Load JSON-encoded data from the server using a GET HTTP request.

眼藏柔 2024-11-06 16:23:02

$.get('路径/到/文件',
函数(数据){
我的变量=数据;
},
“json”
);

$.get('path/to/file',
function(data) {
my_variable = data;
},
"json"
);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文