jQuery.parseJSON与jQuery.getJSON

时间:2011-04-05 14:53:13

标签: jquery ajax json

我很擅长使用JSON(以及一般的jQuery Ajax功能)。我要做的是设置一个包含JSON对象的单独文件,指向该文件,将对象存储为变量,并使用点表示法访问对象的属性。

jQuery.parseJSON()允许我做我想做的事,但我想采取指向单独文件的下一步。

例如,以下操作完全符合我的预期,打开一个显示为“红色”的警告框:

var test = $.parseJSON('{"simple":"red"}');
alert(test.simple);

以下指向包含相同JSON对象的文件不起作用,打开一个显示“未定义”的警告框:

var test = $.getJSON('simple.json');
alert(test.simple);

我显然没有正确使用它。我正在努力实现的目标是什么?

6 个答案:

答案 0 :(得分:7)

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

你应该做的事情如下:

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

总是付钱阅读API文档

答案 1 :(得分:6)

我认为你误解了getJSON。它不返回JSON对象,但是将来自AJAX请求的响应文本解析为JSON的简写。

当你调用getJSON时,你实际上是在执行一个异步请求。当您呼叫提醒时,该请求尚未恢复。

尝试:

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

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

答案 2 :(得分:2)

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

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

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

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

答案 3 :(得分:1)

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对象或数组。

答案 4 :(得分:0)

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

  

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

答案 5 :(得分:0)

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