从GET响应/ JSON对象中提取数据

时间:2015-06-03 19:51:03

标签: javascript jquery json

有一段时间没有触及Javascript,无法找到从JSON对象中提取数据的正确方法。 所以我基本上向Giphy API发送了一个简单的GET请求,并尝试从响应中获取URL,但由于某种原因,我得到了各种错误。 这就是我试过的:

    $(function() {
      $('#searchButton').click(function() {
        console.log("test");
        $("#result").append("test<br />");
        var xhr = $.get("http://api.giphy.com/v1/gifs/search?q=cats&api_key=dc6zaTOxFJmzC&limit=1");
        xhr.done(function(data) {
          console.log(this.fixed_height);
          $("#result").append("success got data<br />" + data + "<br />");
          console.log("success got data", data);
          $.each(data.results, function() {
            $.each(this.images, function() {
              console.log(this.fixed_height);
              $("#result").append(this.fixed_height + "<br />");
            });
          })
        });
      });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="searchButton">search!</button>

<div id="result"></div>

1 个答案:

答案 0 :(得分:1)

你有几个问题。首先,data对象中没有data成员。我唯一能看到你可以在数据对象中迭代的东西是另一个images成员。其次,在fixed_height内,没有height,只有var xhr = $.get("http://api.giphy.com/v1/gifs/search?q=cats&api_key=dc6zaTOxFJmzC&limit=1"); xhr.done(function (data) { $.each(data.data, function () { $.each(this.images, function () { console.log(this.height); }); }) }); 。这有效:

$(function () {});

http://jsfiddle.net/n9ffva83/

在JSFiddle中不需要记住var xhr = $.get("http://api.giphy.com/v1/gifs/search?q=cats&api_key=dc6zaTOxFJmzC&limit=1"); xhr.done(function (data) { $.each(data.data, function () { console.log(this.images.fixed_height.url); }) }); ,所以你必须提供(就像你在上面提到的代码中所做的那样)。

修改: 要获得固定高度的网址,请尝试以下方法:

 public ActionResult TechSearchTickets()
        {
            ViewBag.StatusId = new SelectList(db.TicketStatuses, "UserId", "FullName");
            ViewBag.UserId = new SelectList(db.Users
                                                .Where(u => u.Status == 1 || u.RoleID == new Guid("00000000-0000-0000-0000-000000000000")), "UserId", "FullName");
            ViewBag.TechId = new SelectList(db.Users
                                                .Where(u => u.Status == 1 || u.RoleID == new Guid("00000000-0000-0000-0000-000000000000")), "UserId", "FullName");

            return View();
        }

        [HttpPost]
        public ActionResult TechSearchTickets(SearchTickets searchTickets)
        {

            var model = db.Tickets
                    .Include(t => t.TicketNotes)
                    if (searchTickets.TechnicianId != null)
                    {
                        .Where(t => t.TechnicianId == g)
                    }
                    .Where(t => t.TicketStatusId == new Guid("553F4C93-4A72-44BD-A9CE-FAB4F87D4E08"))
                    .OrderBy(t => t.OpenDate)
                    .ToList();

            return View("TechClosed", model);


            return View();
        }

这个网址似乎只有一个,属于图片。

http://jsfiddle.net/n9ffva83/1/