2

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

有什么优雅的方法吗?

谢谢

4

3 回答 3

5

你需要的是这样的:

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(","));

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

Object.keys(obj).sort().forEach(function(key) {
于 2012-06-16T06:00:40.437 回答
0

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

alert(data[0]);

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

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

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

于 2012-06-16T05:28:30.420 回答
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 演示

于 2012-06-16T06:44:39.667 回答