Pet Finder API要显示的特殊字符

时间:2017-11-02 00:26:20

标签: jquery html ajax api

我是堆叠溢出的新手,因为我没有很多重复点,但我无法评论我想要的地方(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));
    }
  });
});

1 个答案:

答案 0 :(得分:0)

Pet Finder API的回复看起来像这样(这是实际响应的一部分):

"status":{
    "message":{},
    "code":{
        "$t":"100"
    }
}

正如您所看到的,代码对象属性中的一个键是$ t,它存储状态代码(看起来如此),因此为了获得值100,您需要使用["status"]["code"]["$t"]访问该对象或者您可以使用status.code.$t访问它。

您的代码完全正常且与任何内容无关,它只是构建API的方式以及它作为键的用途,如果您问为什么要这样做那么你应该问问API的开发者,可能是他们设计过程的一部分,希望它背后有一些聪明的逻辑。