我有一个名为values的数组,其中包含此数据
var values=new Array();
values.push("english":"http://www.test.in/audio_ivrs/sr_listenglishMSTR001.wav");
values.push("kannada":"http://www.test.in/audio_ivrs/sr_listfrenchMSTR001.wav");
当我执行JSON.stringify(values)时,我得到带方括号的值,但是我需要一个JSON字符串,如下所示,并在第一行附加了urllist。
{
"urlList":{
"english":"http://www.test.in/audio_ivrs/sr_listenglishMSTR001.wav",
"kannada":"http://www.test.in/audio_ivrs/sr_listfrenchMSTR001.wav"
}
}
答案 0 :(得分:4)
您定义的代码会给您带来错误。这不是有效的JavaScript;你不能像这样创建一个数组元素。
values.push("english":"http://www.test.in/audio_ivrs/sr_listenglishMSTR001.wav");
如果您想要在问题中指定的结构,那么您需要使用嵌套对象而不是数组来包含键/值对。
var values = {
urlList: {}
};
values.urllist.english = "http://www.test.in/audio_ivrs/sr_listenglishMSTR001.wav";
values.urllist.kannada = "http://www.test.in/audio_ivrs/sr_listfrenchMSTR001.wav";
<强>无论其... 强>
让我们暂时假设您对代码的意义是这样的(请注意大括号):
var values=new Array();
values.push({"english":"http://www.test.in/audio_ivrs/sr_listenglishMSTR001.wav"});
values.push({"kannada":"http://www.test.in/audio_ivrs/sr_listfrenchMSTR001.wav"});
这会告诉我你将对象推送到一个完全有效 JavaScript的数组中。
要将数组中的信息输入到您需要的结构中,您可以使用类似这样的循环:
var out = {
urlList: {}
};
for (var i = 0, l = values.length; i < l; i++) {
var el = values[i];
var key = Object.keys(el);
var value = el[key];
out.urlList[key] = value;
}
JSON.stringify(out);