我很擅长使用JSON(以及一般的jQuery Ajax功能)。我要做的是设置一个包含JSON对象的单独文件,指向该文件,将对象存储为变量,并使用点表示法访问对象的属性。
jQuery.parseJSON()允许我做我想做的事,但我想采取指向单独文件的下一步。
例如,以下操作完全符合我的预期,打开一个显示为“红色”的警告框:
var test = $.parseJSON('{"simple":"red"}');
alert(test.simple);
以下指向包含相同JSON对象的文件不起作用,打开一个显示“未定义”的警告框:
var test = $.getJSON('simple.json');
alert(test.simple);
我显然没有正确使用它。我正在努力实现的目标是什么?
答案 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);
});
答案 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)
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"
);