假设有两个json对象为
1。
{
"conditionTemp": null,
"value": null,
"variableValue": "flowParameters_3"
}
或
{
"conditionTemp": {
"functionID": "func_1",
"parameters": [{}]
},
"value": null,
"variableValue": null
}
和
2。
{
"conditionTemp": {
"functionID": "func_1",
"parameters": [{
"conditionTemp": null,
"value": null,
"variableValue": "flowParameters_3"
},
{
"conditionTemp": {
"functionID": "func_1",
"parameters": [{}]
},
"value": null,
"variableValue": "null"
},
{}
]
},
"value": null,
"variableValue": null
}
即 第二个对象将具有(“ conditionTemp”,“ value”,“ variable”),
第一个“ conditionTemp”将具有“ functionID”,“ parameters”
在“参数”中,我们可以没有任何编号。对象。如果在参数内部,则对象的“ conditionTemp”值为不为空,我们必须检查其中的参数对象。 如果参数对象为空,则必须在其中插入**第一个对象。**
因此对于上述json,在将第一个对象添加到第二个对象后, 生成的json将是
{
"conditionTemp": {
"functionID": "func_1",
"parameters": [{
"conditionTemp": null,
"value": null,
"variableValue": "flowParameters_3"
},
{
"conditionTemp": {
"functionID": "func_1",
"parameters": [{
"conditionTemp": null,
"value": null,
"variableValue": "flowParameters_3"
}]
},
"value": null,
"variableValue": "null"
},
{}
]
},
"value": null,
"variableValue": null
}
答案 0 :(得分:1)
第一级是这样的:
var obj_a = {
"conditionTemp": {
"functionID": "func_1",
"parameters": [{
"conditionTemp": null,
"value": null,
"variableValue": "flowParameters_3"
},
{
"conditionTemp": {
"functionID": "func_1",
"parameters": [{}]
},
"value": null,
"variableValue": "null"
},
{}
]
},
"value": null,
"variableValue": null
};
var obj_b = {
"conditionTemp": null,
"value": null,
"variableValue": "flowParameters_3"
};
var final_obj = Object.keys(obj_a).reduce(function(data, key) {
if (obj_a[key] == null && obj_b[key] != null)
data[key] = obj_b[key];
else
data[key] = obj_a[key];
return data;
}, {});
console.log(final_obj);
第二级和更高级别会比较棘手。格式总是这样吗?在您的示例中,值可能是(字符串,空值,对象数组)...是否有其他未提及的格式或者您可能不知道?