簡體   English   中英

在JavaScript中將對象添加到復雜的json

[英]add object to a complex json in javascript

假設有兩個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”值不為null ,我們必須檢查其中的參數對象。 如果參數對象為空,則必須在其中插入“第一個對象”

因此,對於上述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); 

第二和更高的級別將是棘手的。 格式總是這樣嗎? 在您的示例中,值可以是(字符串,空值,對象數組)...是否有其他未提及的格式,或者您不知道?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM