我被告知不要for...in在JavaScript中使用数组.为什么不?
我需要将JSON对象字符串转换为JavaScript数组.
这是我的JSON对象:
{"2013-01-21":1,"2013-01-22":7}
Run Code Online (Sandbox Code Playgroud)
我希望:
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows([
['2013-01-21', 1],
['2013-01-22', 7]
]);
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我目前正在接收一个JSON对象从我的应用程序的服务器端,结果是这样
{"tags":"[{value: 2,label: 'Dubstep'},{value: 3,label: 'BoysIIMen'},{value: 4,label:'Sylenth1'}]"}
Run Code Online (Sandbox Code Playgroud)
但是我不需要结果中的"标签"和双引号.
所以我想要的是该JSON对象的数组表示
因此,我将如何转换它
{"tags":"[{value: 2,label: 'Dubstep'},{value: 3,label: 'BoysIIMen'},{value: 4,label:'Sylenth1'}]"}
Run Code Online (Sandbox Code Playgroud)
对此
[{value: 2,label: 'Dubstep'},{value: 3,label: 'BoysIIMen'},{value: 4,label:'Sylenth1'}]
Run Code Online (Sandbox Code Playgroud)
这是创建数组的循环
String k = "[";
List<Tag> tg = audioTaggingService.findTagsByName(q);
for(int i = 0; i<audioTaggingService.findTagsByName(q).size();i++){
Tag t = tg.get(i);
if(i == (tg.size() - 1)){
k+="{value: "+t.getId()+",label:'"+t.getName()+"'}";
}else{
k+="{value: "+t.getId()+",label:'"+t.getName()+"'}";
}
}
k+="]";
Run Code Online (Sandbox Code Playgroud)
上面代码的结果就是这个
[{value: 2,label: 'Dubstep'},{value: 3,label: 'BoysIIMen'},{value: 4,label:'Sylenth1'}]
Run Code Online (Sandbox Code Playgroud)