如何正确解析JSON文件以通过JQuery Ajax方法使用它?

时间:2019-06-03 10:00:48

标签: jquery json ajax parsing getjson

我创建了以下 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);

执行此操作后,我得到了另一个错误:

enter image description here

这是由于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>");
                    }
                }
            );

2 个答案:

答案 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