Javascript 检索外部JSON数据
我需要能够检索和显示JSON数据从一个网站的应用程序,我正在做。在将它实现到我的应用程序中之前,我想我应该通过在其他地方测试来确保了解它是如何工作的。我编写了以下HTML和JSON代码来测试它,但是如果我运行应用程序,我会得到UncaughtTypeError:无法读取位于的undefined的属性“0”file:///android_asset/www/projectName.html:11 我做错了什么 HTML:Javascript 检索外部JSON数据,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我需要能够检索和显示JSON数据从一个网站的应用程序,我正在做。在将它实现到我的应用程序中之前,我想我应该通过在其他地方测试来确保了解它是如何工作的。我编写了以下HTML和JSON代码来测试它,但是如果我运行应用程序,我会得到UncaughtTypeError:无法读取位于的undefined的属性“0”file:///android_asset/www/projectName.html:11 我做错了什么 HTML: 将$.get更改为$.getJSON,或者在$.get中设置数据类型,如下所
将
$.get
更改为$.getJSON
,或者在$.get中设置数据类型,如下所示
$.get('testData.json', function(data) {
alert('get performed');
$("p").html(obj[0].data_set.data1);
},'json');
更新
我还意识到您没有正确地解析这样尝试的json
$.get('testData.json', function(data) {
alert('get performed');
$("p").html(obj[0].data_set.data1);
},'json');
您正在使用
eval
,这是不必要的。我建议你读一下
您不需要在data
上使用eval
,因为它已经是一个JSON对象。代码的问题在于,您试图将数据集
作为数据
的属性进行访问。但是,data
实际上是一个数组,有一个未命名的对象。该对象具有成员数据集
。反过来,data\u set
是一个对象,而不是数组,因此不能使用data\u set[0]
。您想要的是:
$(document).ready(function(){
$("button").click(function(){
$.getJSON('testData.json', function(data) {
alert('get performed');
$("p").html(data[0].data_set.data1);
});
});
});
查看以下内容:
我包含了一些代码来遍历整个数据结构(而不仅仅是一条可能的路径)。承担你需要的部分;-)
将
$.get
更改为$.getJSON
会给我一个错误未捕获语法错误:在file:///android_asset/www/projectName.html:1That 工作正常,但是如果我包含'json'
或将url更改为我试图访问的实际网站,我在上一次评论中仍然会出现错误。该网站的json数据结构与我给出的示例相同。您使用的是eval
,这是不必要的。我建议您阅读有关使用data[0]
而不是data\u set[0]
的内容,就像Jorge上面建议的那样,但是删除var obj=eval(“+data+”)
并将其下面的行更改为$(“p”).html(数据[0].data\u set.data1)代码>向我提供错误Uncaught TypeError:无法读取在处未定义的属性“data1”file:///android_asset/www/projectName.html:10I 复制我发布的确切JSON数据并将其粘贴回testData.JSON,然后用您在原始注释中提供的代码替换第二组脚本标记之间的代码,我仍然得到那个错误。但是,如果我将$.get
更改为$.getJSON
,那么它就可以工作了。
$(document).ready(function(){
$("button").click(function(){
$.getJSON('testData.json', function(data) {
alert('get performed');
$("p").html(data[0].data_set.data1);
});
});
});
$(document).ready(function () {
$("button").click(function () {
$.ajax({
url: '/gh/gist/response.json/37ab4c69a04628428ce2',
dataType: 'json',
success: function (json) {
// to display everything
/*$.each(json, function (k, v) {
$.each(v.data_set, function (key, value) {
$('p').append(value);
});
});*/
// to display just the string
$('p').html(json[0].data_set.data1);
}
});
});
});