我创建了以下 JSON数组:
[
{
"nome": "Aldo Maria",
"indirizzo": "Viale Europa 1",
"telefono": "3397889034"
},
{
"nome": "Maria13",
"indirizzo": "Viale Europa 1",
"telefono": "3397889034"
}
]
,我有一个Javascript文件,我想在其中循环此数组的两个元素。 我想使用解释为here的 Jquery ajax方法来做到这一点。
换句话说,我认为我应该使用以下正弦值:
$(选择器).getJSON(URL,数据,成功(数据,状态,xhr))
我正在尝试应用该代码,并将以下代码段写入到我的javascrpt文件中,在该文件中我想循环显示JSON数组的元素,以便显示一个表,用户可以从中获取有关姓名,地址和电话的数据人数)
function validateTelefono(){ setTimeout(function(){
var data = JSON.parse(data);
$.getJSON("I wrote the patthern of the JSON file
here",
function(){
for (var i=0; i < data.length; i++){
$("#tbody").append("<tr>");
$("#tbody").append("<td>" + data.nome[i] + "</td>");
$("#tbody").append("<td>" + data.indirizzo[i] + "</td>");
$("#tbody").append("<td>" + data.telefono[i] + "</td>");
$("#tbody").append("</tr>");
}
);
为了完整起见,下面是整个代码:
function validateTelefono() {
console.log("function validateTelefono has been activated");
if ($("#inlineFormInputTelefono").val() == "") {
$("#errorLogTelefono").show();
} else {
$("#errorLogTelefono").hide();
$("#cercaTelefono").prop("disabled", true);
$("#tbody").empty();
setTimeout(function () {
var data = JSON.parse(data);
$.getJSON(
"D:\Unknown\array.json",
//success
function(){
console.log(data);
for (var i=0; i < data.length; i++){
$("#tbody").append("<tr>");
$("#tbody").append("<td>" + data.nome[i] + "</td>");
$("#tbody").append("<td>" + data.indirizzo[i] + "</td>");
$("#tbody").append("<td>" + data.telefono[i] + "</td>");
$("#tbody").append("</tr>");
}
}
);
$("#tabella").show();
$("#cercaTelefono").prop("disabled", false);
}, 1000);
}
}
在浏览器中打开页面时,我得到:
未捕获的SyntaxError:JSON中位置0处的意外令牌u 在JSON.parse()
参考以下代码行:
var data = JSON.parse(data);
我认为错误是括号内的 data 。
我应该写什么而不是“数据” ?还是有其他原因导致Jquery方法不起作用?
1)我删除了以下代码行,上面的错误消息消失了(感谢您的建议):
var data = JSON.parse(data);
执行此操作后,我得到了另一个错误:
这是由于url
方法的getJSON
参数中url的语法引起的:整个路径(“ D:\ Unknown \ array.json” )未被识别,因为它不存在于我的javascript文件所在的文件夹“内部”(“未知”);而是指一个外部文件夹(“ D”)。
换句话说,我是通过以下方式修改网址的:
"array.json"
“ array.jason ”位于使用过的javascript文件的同一文件夹(“未知”)中。因此,整个代码段的正确语法如下:
$.getJSON(
"array.json",
function(data){
for (var i=0; i < data.length; i++){
$("#tbody").append("<tr>");
$("#tbody").append("<td>" + data[i].nome + "</td>");
$("#tbody").append("<td>" + data[i].indirizzo + "</td>");
$("#tbody").append("<td>" + data[i].telefono + "</td>");
$("#tbody").append("</tr>");
}
}
);
答案 0 :(得分:1)
无需解析为JSON,因为它已经是JSON格式。但是请不要忘记该请求返回一个数组,所以(注意将data.key [i]更改为data [i] .key):
index = []
for i in range df.shape[0]:
if df.iloc[i,:].tolist() == row
index.append(i)
答案 1 :(得分:0)
错误Uncaught SyntaxError: Unexpected token u in JSON at position 0 at JSON.parse ()
是由json文件的路径引起的。您必须将其写为\\
,因为\
将启动转义序列。因此,您目前正在尝试转义U
中的Unknown
。