Javascript 从包含多维数据的字符串构建JSON对象
我有一个名称/值对象数组(如下)。名称的格式设置为表示多维数组 我需要用它构建一个完整的JavaScript对象(底部) 变成这样:Javascript 从包含多维数据的字符串构建JSON对象,javascript,json,multidimensional-array,Javascript,Json,Multidimensional Array,我有一个名称/值对象数组(如下)。名称的格式设置为表示多维数组 我需要用它构建一个完整的JavaScript对象(底部) 变成这样: {getQuote : { origin : Omaha}, { destination : 10005}, {vehicles : [ { year : 1989, make: Honda, model : accord }, { //etc }] var source = [ /* Your so
{getQuote :
{ origin : Omaha},
{ destination : 10005},
{vehicles : [
{
year : 1989,
make: Honda,
model : accord
},
{
//etc
}]
var source = [ /* Your source array here */ ];
var dest = {};
for(var i = 0; i < source.length; i++)
{
var value = source[i].value;
var path = source[i].name.split(/[\[\]]+/);
var curItem = dest;
for(var j = 0; j < path.length - 2; j++)
{
if(!(path[j] in curItem))
{
curItem[path[j]] = {};
}
curItem = curItem[path[j]];
}
curItem[path[j]] = value;
}
n您可以手动执行,如下所示:
{getQuote :
{ origin : Omaha},
{ destination : 10005},
{vehicles : [
{
year : 1989,
make: Honda,
model : accord
},
{
//etc
}]
var source = [ /* Your source array here */ ];
var dest = {};
for(var i = 0; i < source.length; i++)
{
var value = source[i].value;
var path = source[i].name.split(/[\[\]]+/);
var curItem = dest;
for(var j = 0; j < path.length - 2; j++)
{
if(!(path[j] in curItem))
{
curItem[path[j]] = {};
}
curItem = curItem[path[j]];
}
curItem[path[j]] = value;
}
var source=[/*您的源数组在这里*/];
var dest={};
对于(变量i=0;i
dest
是结果对象
检查它是否在这里工作:您很可能只需要“对象”。添加了说明,谢谢您,Oleg。好吧,按[]个块分割它并按需自动激活对象似乎并不难。唯一棘手的部分是在只使用数字索引的级别上激活数组对象。@OlegV.Volkov,这就是问题所在!这似乎并不难,但试着解决它,它肯定会吃掉你的大脑。我试图解决它,因为过去15分钟以上,甚至不接近解决方案!要分解这些内容,我将执行以下操作:
strAry=myArray[I].replace(/\]/g,”).split(“[”)
但这只是谜题的一部分。太好了!又短又漂亮!嗯,一些我以前没见过的新东西,谢谢。我的解决方案远没有这么优雅。谢达尔,这是给你的金星。这并没有像应该的那样为数字独立创建数组。我想你可以很容易地解决这个问题。