我是堆叠溢出的新手,因为我没有很多重复点,但我无法评论我想要的地方(related article)所以我需要打开一个新问题。
问题:为什么我需要在JSON键的末尾添加['$ t']才能显示值?
这个ajax正在调用Pet Finder API。
$.ajax({
type: 'GET',
data: {},
url: url + '&callback=?',
dataType: 'json',
success: function (data) {
//declare and assign JSON array of data results
var petfinder = data.petfinder.pets.pet;
for (var i = 0; i < petfinder.length; i++) {
var infoDiv = $("<div>")
var name = $("<div>").html("<b>Name: </b>" + petfinder[i].name['$t']);
var animal = $("<div>").html("<b>Animal Type: </b>" + petfinder[i].animal['$t']);
var age = $("<div>").html("<b>Age: </b>" + petfinder[i].age['$t']);
var sex = $("<div>").html("<b>Sex: </b>" + petfinder[i].sex['$t']);
var size = $("<div>").html("<b>Size: </b>" + petfinder[i].size['$t'] + "<br><hr><br>");
infoDiv.append(animal)
infoDiv.append(name)
infoDiv.append(age)
infoDiv.append(sex)
infoDiv.append(size)
// return infoHTML;
$('#petfinderInfo').append(infoDiv);
}
},
error: function (request, error) {
alert("Request: " + JSON.stringify(request));
}
});
});
答案 0 :(得分:0)
Pet Finder API的回复看起来像这样(这是实际响应的一部分):
"status":{
"message":{},
"code":{
"$t":"100"
}
}
正如您所看到的,代码对象属性中的一个键是$ t,它存储状态代码(看起来如此),因此为了获得值100,您需要使用["status"]["code"]["$t"]
访问该对象或者您可以使用status.code.$t
访问它。
您的代码完全正常且与任何内容无关,它只是构建API的方式以及它作为键的用途,如果您问为什么要这样做那么你应该问问API的开发者,可能是他们设计过程的一部分,希望它背后有一些聪明的逻辑。