如何从JSON响应中获取逗号分隔列表?

时间:2012-06-16 05:22:31

标签: javascript json

你好我有一个javascript问题,我得到一个JSON结果:

{"0":"San Diego acls","1":"San Diego pals","2":" San Diego CPR","3":" Temecula acls","4":" Temecula pals"}

存储在名为data的变量中。

我想解析这个数据变量并制作一个类似的列表:

San Diego acls, San Diego pals, San Diego CPR, Temecula acls, Temecula pals

有什么优雅的方式吗?

由于

3 个答案:

答案 0 :(得分:5)

你需要的是:

var res = [];
for (var x  in obj)
    if (obj.hasOwnProperty(x))
        res.push(obj[x]);
console.log(res.join(","));

还有一种“优雅”的方式(取自Alex's answer),

res = [];
Object.keys(obj).forEach(function(key) {
    res.push(obj[key]);
});
console.log(res.join(","));

如果您需要特定顺序的结果,在调用数组上的forEach之前对键(来自Object.keys(obj))进行排序将有所帮助。像这样:

Object.keys(obj).sort().forEach(function(key) {

答案 1 :(得分:0)

这在Javascript中非常简单。您可以像这样访问变量data

alert(data[0]);
应该提醒“San Diego acls”。使用循环对所有这些做同样的事情。您可以使用+运算符轻松地连接字符串。

var result = "";
for (var dString in data) { 
    result += dString + ", ";
}

这将创建一个名为result的字符串,并将数组中字符串的元素添加到其中。它还会在问题中描述的每个元素之间添加“,”。

答案 2 :(得分:0)

这个也有效。

$(document).ready(function(){
    var data = {"0":"San Diego acls","1":"San Diego pals","2":" San Diego CPR","3":" Temecula acls","4":" Temecula pals"};
    var csv = $.map(data,function(data){ return data;});
    alert(csv);
});

jsfiddle DEMO