javascript - 在javascript中将对象添加到复杂的json中

标签 javascript arrays json

假设有两个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
}

最佳答案

第一级是这样的:

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);

第二个及以后的关卡会很棘手。格式总是这样吗?在您的示例中,值可以是(字符串、空、对象数组)...是否还有其他未提及或您不知道的格式?

关于javascript - 在javascript中将对象添加到复杂的json中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405765/

相关文章:

javascript - 如何使用 JavaScript 解析从 Ruby on Rails Controller 返回的多个 JSON 对象

javascript - jQuery 无法删除父 div

php - 隐藏div的Javascript代码

javascript - 获取两个日期之间的月份名称

arrays - 连接4个对角线赢支票

PHP JSON 解析出现错误

javascript - 当按下按钮并且页面发生变化时执行完整的js函数

c++ - 将 char [][] 分配给 char**

javascript - 如何随机化这种两个不同的javascript数组

c# - 实时更新 map - 计时器类 - c#