1

我从自定义 wordpress 帖子类型中回显了以下内容get-client-logos.php

[{
    "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?

4

5 回答 5

2

你所拥有的是一个对象数组,因此$.each将传递indexobject.. 试试下面的代码。

$.each(data, function(idx, val) {
 items.push('<img src ="' + val.url + '"/>');
});
于 2012-10-22T19:19:56.357 回答
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 + '"/>');
于 2012-10-22T19:19:42.723 回答
1

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

items.push('<img src ="' + val.url + '"/>');
于 2012-10-22T19:20:11.490 回答
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.urlOrval["url"]应该可以解决问题..

于 2012-10-22T19:20:14.587 回答
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);
});
于 2012-10-22T19:20:26.510 回答