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

How to get a comma separated list from a JSON response?

本文关键字:分隔 列表 获取 JSON 响应      更新时间:2023-09-26

你好,我有一个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

有什么优雅的方式吗?

谢谢

你需要

的是:

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

还有一种"优雅"的方法(取自亚历克斯的回答),

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) {

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

alert(data[0]);

这应该提醒"圣地亚哥ACL"。使用循环对所有这些执行相同的操作。您可以使用 + 运算符轻松连接字符串。

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

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

这个也有效。

$(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);
});

斯菲德尔演示