Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery获取json数据_Javascript_Jquery_Ajax_Json - Fatal编程技术网

Javascript 使用jquery获取json数据

Javascript 使用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

嘿,伙计们,我想知道如何通过ajax调用获取json数据

我试过了,但似乎不起作用:p

首先,我创建了一个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)