首頁>Program>source

我有一个非常複雜的巢狀json檔案,我需要使用 recursion遍歷它
我需要的是

  1. 將最裏面的值分配给它的父键
  2. 删除最裏面的键和值
  3. 删除空物件

我尝試了很多方法,但是我是javascript世界的新手,無法提出正確的解決方案。 我拥有的json巢狀如下

     {
         "Changes_Only": {
                "_text": "some value"
              },
              "Legal_Employee_Id": {},
            "EmployeeData": {
              "OBJECT_ACTION_ID": {
               "_text": "some value"
              },
              "Employee": {
                "PersonID": {
                  "_text": "some value"
                },
                "PersonID_OLD": {},
                "PersonNumber": {
                  "_text": "some value"
                },
                "PersonNumber_OLD": {},
                "StartDate": {
                  "_text": "some value"
                },
                "StartDate_OLD": {},
                "PersonType": {
                  "_text": "some value"
                },
                "PersonType_OLD": {},
                "DateofBirth": {
                  "_text": "some value"
                },
                "DateofBirth_OLD": {},
                "HireDate": {
                  "_text": "some value"
                },
                "HireDate_OLD": {},
                "WorkEmail": {
                  "_text": "some value"
                },
                "WorkEmail_OLD": {},
                "FirstName": {
                  "_text": "some value"
                },
                "FirstName_OLD": {},
                "LastName": {
                  "_text": "some value"
                },
                "LastName_OLD": {}
              },
              "NationalIDHT": {
                "NtionalIDData": {
                  "NationalIDValues": {
                    "NationalType": {
                      "_text": "some value"
                    },
                    "NationalIDNumber": {
                      "_text": "some value"
                    }
                  }
                }
              },
              "AssignmentHT": {
                "AssignmentData": {
                  "Assignment": {
                    "PersonNumber": {
                      "_text": "some value"
                    },
                    "PersonNumber_OLD": {},
                    "WorkerNumber": {
                      "_text": "some value"
                    },
                    "WorkerNumber_OLD": {},
                    "Gender": {
                      "_text": "some value"
                    },
                    "Gender_OLD": {},
                    "ActionName": {
                      "_text": "some value"
                    },
                    "ActionName_OLD": {},
                    "HourlySalaried": {
                      "_text": "some value"
                    },
                    "HourlySalaried_OLD": {},
                    "SalaryBasis": {
                      "_text": "some value"
                    },
                    "SalaryBasis_OLD": {},
                    "ManagerPersonNumber": {
                      "_text": "some value"
                    },
                    "ManagerPersonNumber_OLD": {},
                    "ManagerDisplayName": {
                      "_text": "some value"
                    },
                    "ManagerDisplayName_OLD": {},
                    "AssignmentCategory": {
                      "_text": "some value"
                    },
                    "AssignmentCategory_OLD": {},
                    "AsgState": {
                      "_text": "some value"
                    },
                    "AsgState_OLD": {},
                    "JobCode": {
                      "_text": "some value"
                    },
                    "JobCode_OLD": {},
                    "Desgination": {
                      "_text": "some value"
                    },
                    "Desgination_OLD": {},
                    "Grade": {
                      "_text": "some value"
                    },
                    "Grade_OLD": {},
                    "Levele-Grade": {
                      "_text": "some value"
                    },
                    "Levele-Grade_OLD": {},
                    "Department": {
                      "_text": "some value"
                    },
                    "Department_OLD": {},
                    "EmployeeType": {
                      "_text": "some value"
                    },
                    "EmployeeType_OLD": {},
                    "BusinessUnit": {
                      "_text":"some value"
                    },
                    "BusinessUnit_OLD": {},
                    "BaseLocation": {
                      "_text":"some value"
                    },
                    "BaseLocation_OLD": {},
                    "PhysicalWorkAddress": {
                      "_text":"some value"
                    }
                    }
                  }
                }
              }
            }

如下所示,我需要的json還可以帮助我删除空物件

{
         "Changes_Only":  "some value",
          
            "EmployeeData": {
              "OBJECT_ACTION_ID":  "some value",
              "Employee": {
                "PersonID": "some value",
                "PersonNumber":  "some value",
                "StartDate":  "some value",
                "PersonType":  "some value",
                "DateofBirth":  "some value",
                "HireDate":  "some value",
                "WorkEmail":  "some value",
                "FirstName":  "some value",
                "LastName":  "some value"
              },
              "NationalIDHT": {
                "NtionalIDData": {
                  "NationalIDValues": {
                    "NationalType":  "some value",
                    "NationalIDNumber":  "some value"
                  }
                }
              },
              "AssignmentHT": {
                "AssignmentData": {
                  "Assignment": {
                    "PersonNumber": "some value",
                    "WorkerNumber": "some value",
                    "Gender":  "some value",
                    "ActionName": "some value",
                    "HourlySalaried": "some value",
                    "SalaryBasis": "some value",
                    "ManagerPersonNumber": "some value",
                    "ManagerDisplayName":  "some value",
                    "AssignmentCategory":  "some value",
                    "AsgState":  "some value",
                    "JobCode":  "some value",
                    "Desgination":  "some value",
                    "Grade":  "some value",
                    "Levele-Grade":  "some value",
                    "Department":  "some value",
                    "EmployeeType":  "some value",
                    "BusinessUnit":  "some value",
                    "BaseLocation":  "some value",
                    "PhysicalWorkAddress": "some value"
                    }
                  }
                }
              }
            }
        
最新回復
  • 8月前
    1 #

    尝試一下,我只是在纠正@Konstantin Pribluda

    const r = { ...} // Input JSON
    JSON.parse(JSON.stringify(r).replace(/{\s*"_text":\s*("[^"]*")\s*}/g, "$1").replace(/"[^"]*"\s*:\s*{},/g,""))
    

    第二,替換為空的{}

  • 8月前
    2 #

    實際上,您不需要在這裏进行JSON解析-您可以删除正則表達式.仅用"某些值"替換{" _text":"某些值"}即可解決問题。

    赞:

    str.replace(/{\s*"_text":\s*("[^"]*")\s*}/, "$1")
    

    会維護

    "PersonNumber": { "_text": "some value" },

    str.replace(/"[^"]*"\s*:\s*{},/,"")
    

    將删除空屬性

  • html圖像字元串上的正則表達式
  • python:Azure函式使用sendgrid發送帶有徽標的電子郵件