我的问题是我想构建一个JS对象消息分层动态,而这个没有数组。我在stackoverflow,谷歌和许多其他网站上搜索了很多,但遗憾的是还没有找到解决方案,我对这个领域相当新。 阵列有很多例子,但他们没有回答我的问题。 这是我的结构。
{
"ID" : 1,
"SRC" : "SYS",
"LOG" : {
"PARAM" : {
"NUM" : 3,
"N01" : {
" TO " : 1,
" OM " : 1,
" NO " : 1,
" IO " : 1,
},
"N02" : {
" TO " : 2,
" OM " : 2,
" NO " : 2,
" IO " : 2,
},
"N03" : {
" TO " : 3,
" OM " : 3,
" NO " : 3,
" IO " : 3,
}
}
}}
如果下次只存在N02,则结构应如下所示。等等...
{
"ID" : 1,
"SRC" : "SYS",
"LOG" : {
"PARAM" : {
"NUM" : 1,
"N02" : {
" TO " : 2,
" OM " : 2,
" NO " : 2,
" IO " : 2,
}}}}
例如,在存在的情况下,应将NUM添加到结构中。如果N01不存在且N02可用,则需要在层次结构中添加N02。 我需要一些帮助才能在JavaScript中执行此操作。
答案 0 :(得分:0)
如果我理解你的问题是正确的,我不是一般的,但我会创建一个基本对象,如
message = {
addParam: function (item) {
var paramLength = 0;
for (var k in this.LOG.PARAM) {
if (this.LOG.PARAM.hasOwnProperty(k)) {
paramLength++;
}
}
this.LOG.PARAM["NUM"] = paramLength;
this.LOG.PARAM["N"+paramLength] = item;
},
ID: 1,
SRC: "SYS",
LOG: {
PARAM: {
NUM: 0,
}
}
}
message.addParam({
" TO ": 1,
" OM ": 1,
" NO ": 1,
" IO ": 1,
});
document.getElementById("output").innerHTML = JSON.stringify(message, null, 4);

<div ><pre id="output"></pre></div>
&#13;
可以轻松修改所有属性,只需选择message.ID
,然后添加message.ID = 12
之类的值。
我还在此对象中添加了一个函数&#39; addParam&#39;。这会将附加对象添加到PARAM属性,并将更新数字值。