基本上我想创建一个树形结构。例如,如果您有四个项目的数组[' a',' b',' c',' d']那么我需要这个JSON应该是
{a: {b: {c: {d: 0} } } }
JSON的最后一项值为0,或者它可以是除object之外的任何内容。
答案 0 :(得分:5)
转换步骤很简单,循环简单:
示例代码:
var array = ['a', 'b', 'c', 'd']; // input array
var json = {}; // output object
array.reverse().forEach(function(el){
if (Object.keys(json).length==0){
json[el] = 0;
}
else{
var outer = {};
outer[el] = json;
json = outer;
}
});
<强>输出强>
{“a”:{“b”:{“c”:{“d”:0}}}}
答案 1 :(得分:1)
在ES5环境中。
var data = ['a', 'b', 'c', 'd'],
jsObject = data.reduceRight(function (acc, datum) {
var val = {};
val[datum] = acc;
return val;
}, 0),
jsonString = JSON.stringify(jsObject);
document.getElementById('out').textContent = jsonString;
&#13;
<pre id="out"></pre>
&#13;