Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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 I';我在解析JSON时出错_Javascript_Jquery_Json_Ajax - Fatal编程技术网

Javascript I';我在解析JSON时出错

Javascript I';我在解析JSON时出错,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我有这个示例JSON代码,我想用jQueryAjax循环它,但由于某些原因,控制台上总是出现错误 这是文件new_content.json中的代码 这些是我的html <div id="main">This is the original text when page loads</div> <button id="button1" type="button">Update content with Ajax</button> 这是页面加载时的

我有这个示例JSON代码,我想用jQueryAjax循环它,但由于某些原因,控制台上总是出现错误

这是文件new_content.json中的代码

这些是我的html

<div id="main">This is the original text when page loads</div>

<button id="button1" type="button">Update content with Ajax</button>
这是页面加载时的原始文本
使用Ajax更新内容
这是javascript内部的

$(document).ready(function () {
    $("#button1").on('click', function () {
        $.ajax({
            type: "GET",
            url: "new_content.json",
            success: function (rawData) {
                var data = JSON.parse(rawData);
                var result = '';
                result += '<table> \
                                 <tr> \
                                        <th>name</th> \
                                        <th>email</th> \
                                    </tr> \
                                    <tr>';
                $.each(data, function (i, item) {
                    result += "<tr><td>" + item[i].name + "</td>";
                    result += "<td>" + item[i].email + "</td></tr>";
                });
                result += "</tr></table>";
                $("#main").html(result);
            }
        });
    });
});
$(文档).ready(函数(){
$(“#按钮1”)。在('click',函数(){
$.ajax({
键入:“获取”,
url:“new_content.json”,
成功:函数(rawData){
var data=JSON.parse(rawData);
var结果=“”;
结果+='\
\
名字\
电子邮件\
\
';
$。每个(数据、功能(i、项){
结果+=“”+项目[i]。名称+“”;
结果+=“”+项目[i]。电子邮件+“”;
});
结果+=”;
$(“#main”).html(结果);
}
});
});
});
$(文档).ready(函数(){
$(“#按钮1”)。在('click',函数(){
$.ajax({
键入:“获取”,
url:“new_content.json”,
成功:函数(rawData){
var data=JSON.parse(rawData);
var结果=“”;
结果+='\
\
名字\
电子邮件\
\
';
$。每个(数据、功能(i、项){
结果+=“”+项目[i]。名称+“”;
结果+=“”+项目[i]。电子邮件+“”;
});
结果+=”;
$(“#main”).html(结果);
}
});
});
});

试试这个。

问题来自每个循环的内部,您不需要使用
[i]
您的循环应该如下所示:

$.each(data, function(i, item) {
    result += "<tr><td>" + item.name + "</td>";
    result += "<td>" + item.email + "</td></tr>";
})
$。每个(数据、功能(i、项){
结果+=“”+item.name+“”;
结果+=“”+item.email+“”;
})
代码:

var数据=[{
“名称”:“Mehmet”,
“电子邮件”:mehmet@gmail.com"
},
{
“姓名”:“票价”,
“电子邮件”:fareed3242@yahoo.com"
},
{
“姓名”:“乔纳森”,
“电子邮件”:jonathan@gmail.com"
}
];
var结果=”;
var结果=“”;
结果+='namemail';
$。每个(数据、功能(i、项){
结果+=“”+item.name+“”;
结果+=“”+item.email+“”;
})
结果+=”;
$(“#main”).html(结果)

有两个错误

  • 首先删除
    JSON.parse()
    您不需要解析它
  • 迭代数据
    item[i]。名称
    不正确,它应该是
    item.name
    item.email
  • 除了上面列出的2个外,您还缺少了
    的右括号。如果不是打字错误,每个
    也都缺少右括号

    运行以下命令,一切都会好起来我刚刚在本地机器上确认了

    $(document).ready(function () {
            $("#button1").on('click', function () {
                $.ajax({
                    type: "GET",
                    url: "my.json",
                    success: function (rawData) {
                        var data = rawData;
    
                        var result = '';
                        result +=
                            '<table> \
                                    <tr> \
                                            <th>name</th> \
                                            <th>email</th> \
                                        </tr> \
                                        <tr>';
                        $.each(data, function (i, item) {
                            result += "<tr><td>" + item.name + "</td>";
                            result += "<td>" + item.email + "</td></tr>";
                        });
                        result += "</tr></table>";
                        $("#main").html(result);
                    }
                });
            });
        });
    
    $(文档).ready(函数(){
    $(“#按钮1”)。在('click',函数(){
    $.ajax({
    键入:“获取”,
    url:“my.json”,
    成功:函数(rawData){
    var数据=原始数据;
    var结果=“”;
    结果+=
    ' \
    \
    名字\
    电子邮件\
    \
    ';
    $。每个(数据、功能(i、项){
    结果+=“”+item.name+“”;
    结果+=“”+item.email+“”;
    });
    结果+=”;
    $(“#main”).html(结果);
    }
    });
    });
    });
    
    console中的错误是什么?rawData已经是JSON,不需要解析,尝试
    console.log
    it如果ajax方法的答案是application/JSON类型,则不需要解析它。“rawData已经是JSON,不需要解析它,”嗯?你是说它已经是一个对象了吗?@KresimirPendic rawData不是JSON,这就是为什么不需要解析它。
    $.each(data, function(i, item) {
        result += "<tr><td>" + item.name + "</td>";
        result += "<td>" + item.email + "</td></tr>";
    })
    
    $(document).ready(function () {
            $("#button1").on('click', function () {
                $.ajax({
                    type: "GET",
                    url: "my.json",
                    success: function (rawData) {
                        var data = rawData;
    
                        var result = '';
                        result +=
                            '<table> \
                                    <tr> \
                                            <th>name</th> \
                                            <th>email</th> \
                                        </tr> \
                                        <tr>';
                        $.each(data, function (i, item) {
                            result += "<tr><td>" + item.name + "</td>";
                            result += "<td>" + item.email + "</td></tr>";
                        });
                        result += "</tr></table>";
                        $("#main").html(result);
                    }
                });
            });
        });