[英]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.