Javascript I';我在解析JSON时出错
我有这个示例JSON代码,我想用jQueryAjax循环它,但由于某些原因,控制台上总是出现错误 这是文件new_content.json中的代码 这些是我的htmlJavascript 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> 这是页面加载时的
<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);
}
});
});
});