如何在键值对中获取json值?

时间:2012-10-22 19:17:17

标签: jquery json

我通过get-client-logos.php

的自定义wordpress帖子类型回应了以下内容
[{
    "name": "One",
    "url": "http://localhost/wp-content/uploads/2012/10/random04-128x84.jpg"},
{
    "name": "Two",
    "url": "http://localhost/wp-content/uploads/2012/10/chuck_norris_random_fact_generator_6_3957_2224_image_2578-128x84.jpg"
}]​

我正试图从每个json对象中提取url:

$.getJSON('get-client-logos.php/', function (data) {
  var items = [];

  $.each(data, function(key, val) {
    items.push('<img src ="' + val + '"/>');
  });

  console.log(items);
});

在console.logging上,我得到以下内容:

["img src ="[object Object]"/", "img src ="[object Object]"/"]

如何返回值而不是typeOf?

5 个答案:

答案 0 :(得分:2)

您拥有的是一系列对象,因此$.each将通过indexobject。请尝试以下代码。

$.each(data, function(idx, val) {
 items.push('<img src ="' + val.url + '"/>');
});

答案 1 :(得分:1)

val是一个对象,您知道此对象有一个名为url的键。使用点表示法,您可以从对象中获取值。

$.getJSON('get-client-logos.php/', function (data) {
  var items = [];

  $.each(data, function(key, val) {
    items.push('<img src ="' + val.url + '"/>');
  });

  console.log(items);
});

具体行是

items.push('<img src ="' + val.url + '"/>');

答案 2 :(得分:1)

JSON包含一个对象数组,因此在each中,键是数组索引,值是对象。要获得该值,请使用:

items.push('<img src ="' + val.url + '"/>');

答案 3 :(得分:1)

试试这个

尝试val.url

$.each(data, function(key, val) {
    items.push('<img src ="' + val.url + '"/>');
  });

这里在第一次迭代中,val是一个对象

{"name": "One","url": "http://localhost/wp-content/uploads/2012/10/random04-128x84.jpg"}

您需要url这里..所以使用val.urlval["url"]可以解决问题..

答案 4 :(得分:1)

数组包含对象,需要获取对象的url属性

$.getJSON('get-client-logos.php/', function (data) {
  var items = [];

  $.each(data, function(key, val) {
    items.push('<img src ="' + val.url + '"/>');
  });

  console.log(items);
});