Javascript 使用jquery获取json数据
嘿,伙计们,我想知道如何通过ajax调用获取json数据 我试过了,但似乎不起作用:pJavascript 使用jquery获取json数据,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,嘿,伙计们,我想知道如何通过ajax调用获取json数据 我试过了,但似乎不起作用:p 首先,我创建了一个JavaScript文件,将其放入json数据元素中: var food = [ {'name':'bread', 'price':'7,25'}, {'name':'fish', 'price':'9,00'} ]; 我把它保存为food.js 然后我尝试从另一个文件进行ajax调用,这是我的代码: $(docum
首先,我创建了一个JavaScript文件,将其放入json数据元素中:
var food = [
{'name':'bread', 'price':'7,25'},
{'name':'fish', 'price':'9,00'}
];
我把它保存为food.js
然后我尝试从另一个文件进行ajax调用,这是我的代码:
$(document).ready(function(){
$.ajax({
async: false,
dataType: "json",
type:'GET',
url:"food.js",
success: function(data) {
var result = data.food.name;
alert(result);
});
}});
});
有什么想法吗
提前感谢;) 首先,您的示例中有一个语法错误-在
$.ajax
调用中有太多的右大括号,尽管我猜这只是一个输入错误
在JSON中,food
是一个数组,因此需要使用索引器获取其中对象的属性:
success: function(data) {
var result = data.food[0].name; // = "bread"
alert(result);
});
试试这个
$(document).ready(function() {
$.ajax({
async: false,
dataType: "json",
type:'GET',
url:"food.js",
success: function(data) {
var result = data.food[0].name;
alert(result);
}
});
});
您需要遍历返回的
数据
,因为它是一个数组:
$.each(data,function(i,val) {
alert(data[i].name);
});
您可能希望在jquery中使用getJSON函数: 默认情况下,它将数据类型设置为
json
,方法设置为GET
您还应该使用.json
扩展,而不是json的js扩展。并将其格式化为正确的json:
{
"food": [
{
"name": "bread",
"price": 7.25
},
{
"name": "fish",
"price": 9.00
}
],
}
您可以使用此网站帮助设置JSON格式:
您试图调用元素的方式不起作用。您获得的数据是一个数组。在回调中,您可以尝试以下操作:
console.log(data)
console.log(data.food)
console.log(data.food[0])
console.log(data.food[0].name)
console.log(data.food[0].price)
最后,请注意,您使用coma格式化了数字,这不是javascript中格式化数字的方式。使用一个点,这样你就可以把它当作一个数字来处理。我喜欢人们完全忽略你的“food.js”不是JSON字符串,而是JavaScript代码这一事实。这可能适用于老式的基于
eval
的“JSON”,但使用jQueryAjax时,目标文件应该是纯JSON。从开始处移除var food=
,然后移除代码>从末尾开始
然后您可以访问数据.food[0].name
在本例中,您试图通过ajax获取另一个javascript文件。为此,您可以使用Ajax GetScript()在页面中“包含”您的脚本(food.js)
当您直接请求json文件时,您的代码会更好。谢谢您,Rodrigo,我将其改为数据类型:“json”,并完美地工作:)
console.log(data)
console.log(data.food)
console.log(data.food[0])
console.log(data.food[0].name)
console.log(data.food[0].price)