簡體   English   中英

無法在AJAX調用中從JSON獲取值?

[英]Can't get value from JSON in AJAX call?

我是新手:)

我搜索了我的問題,有一些主題,但它們與我的特定問題不同。

我有一個Ajax調用來更新表單,我可以在console.log()看到值,但是我不能在輸入或div中使用插入值,這是我的代碼:

$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: 'my-web-service',
        dataType: "text",
        success: function(data) {
            console.log(data)
            var json = $.parseJSON(data);

            for (var i = 0; i < json.length; ++i) {
                $('#json').append('<div>' + json[i].name + '</div>');
            }
            console.log(json)
        }
    });
});

我的JSON數據是:

{
  "experience": [
    [
      "58b407cd30f8c7a508004210",
      {
        "artistInfo": {
          "id": "f8d3a411",
        }
      },
      {
        "name": "test",
        "description": "testing",
        "tipology": null,
        "email": "ext_link",
        "externalLink": "www.mywebstite.com",
      }
    ]
  ]
}

經驗是一個數組中的一個數組(???),您應該對其進行修復或相應地訪問它。

從外觀上看,如果您可以在控制台日志中看到json,則可能是數據類型問題,您確定它是數組嗎?

json[i].name

這可能是一個對象,而不是數組。 檢查數據類型。 或發布您的WS的輸出

閱讀完數據后您很清楚,您正在嘗試以錯誤的方式訪問它,因為它的數組是您的第一個條目是字符串,然后是一個不包含屬性名稱的對象,最后是我猜想的第三個對象您正在嘗試獲取名稱。

json['experience'][2].name

{  
   "experience":[  
      [  
         "58b407cd30f8c7a508004210",
         {  
            "artistInfo":{  
               "id":"f8d3a411",

            }
         },
         {  
            "name":"test",
            "description":"testing",
            "tipology":null,
            "email":"ext_link",
            "externalLink":"www.mywebstite.com",

         }
      ]
   ]
}

我更喜歡刪除dataType條件,將類型更改為POST(在發送一些數據時需要它),並跳過JSON解析器,因為該解析器已經被解析並且會引發Exception。

$(document).ready(function() {
    $.ajax({
        type: "POST",
        data: { }, // when you need it
        url: 'my-web-service',
        success: function(json) {
            console.log(json)

            for (var i = 0; i < json['experience'].length; ++i) {
                for (var i2 = 0; i2 < json['experience'][i].length; ++i2) {
                    if( json['experience'][i][i2].name ) {
                        $('#json').append('<div>' + json['experience'][i][i2].name + '</>');
                    }
                }
            }

        }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM