将JSON Object成员字符串值连接在一起

时间:2012-08-20 19:28:04

标签: javascript jquery json jsonp

"category": [{
      "id": 28,
      "name": "Dogs"
  },
  {
      "id": 14,
      "name": "Cats"
  },
  {
      "id": 878,
      "name": "Sheep"
  }],

我解析了上面的JSON(使用.ajax和jsonp作为回调),我想将“name”的所有值加入到字符串中。即“狗,猫,羊”。我怎样才能做到这一点?我尝试过简单加入“类别”和名称,即

var cats = categories.join(", ");

OR

var cats = categories.name.join(", ");

但是因为我们正在查看它的成员及其字符串值,所以它不起作用。

3 个答案:

答案 0 :(得分:11)

这看起来像$.map的工作!

var data = {
    "category": [{
          "id": 28,
          "name": "Dogs"
      },
      {
          "id": 14,
          "name": "Cats"
      },
      {
          "id": 878,
          "name": "Sheep"
      }]
}

var cats = $.map(data.category, function(v){
    return v.name;
}).join(', ');

答案 1 :(得分:1)

var text = "";
for(var i=0; category.length; i++)
{
   text += category[i].name;
   if(i!=category.length-1)
       text += ", ";
}

答案 2 :(得分:0)

更简单、更短的版本:

const category = [{
      "id": 28,
      "name": "Dogs"
  },
  {
      "id": 14,
      "name": "Cats"
  },
  {
      "id": 878,
      "name": "Sheep"
  }]
let cats = category.map((item) => {
             return item.name;
           }).join(", ");

在第一部分,map 函数将返回一个包含 item.name 内容的字符串数组。

[ "Dogs", "Cats", "Sheep" ]

由于在数组上,我们可以调用 join 将数组中的所有项目放在一起,但由我们传递给 join 的任何内容分隔(在这种情况下,我们有 ", "它将以逗号和空格分隔)

最后我们有:

Dogs, Cats, Sheep