如何将 Json 字符串附加到 javascript 中的另一个 Json 字符串

vic*_*988 2 javascript json

我有几个 json String 正在使用JSON.stringify,现在必须将所有 jsonString 合并到一个 json 中。

下面是我拥有的 3 个 json 字符串

json 1= '{
   "authSeqNo" : 14,
  "flagNewEdit": "EDIT",
  "groupId": "AD0009",
  "groupName": "IT-Updated",
  "roleId": "Admin-Updated",
  "recordStatus": "A"
}'
json 2=
 {"userList": [
    {
      "userId": "x",
      "email": "x@gamail.com",
      "isDelete" : "TRUE"
    },
    {
      "userId": "y",
      "email": "y@gmail.com",
      "isDelete" : "FALSE"
    }
  ]}
json 3=
{"authMenuList": [
    {
    "menuId" : "ATHMGT",
    "viewFlag": "1",
    "createFlag": "1",
    "editFlag": "0",
    "deleteFlag": "1",
    "creditnoteFlag": "0",
    "cancelFlag": "1"
  }]}
Run Code Online (Sandbox Code Playgroud)

现在必须加入所有这些 3 对 1,我尝试了以下方法

var completeDetails = json1.concat(json2);
completeDetails=completeDetails.concat(json3);
Run Code Online (Sandbox Code Playgroud)

但它没有给出所需的输出。

我的预期结果应该如下所示

 {
   "authSeqNo" : 14,
  "flagNewEdit": "EDIT",
  "groupId": "AD0009",
  "groupName": "IT-Updated",
  "roleId": "Admin-Updated",
  "recordStatus": "A",

  "userList": [
    {
      "userId": "x",
      "email": "x@gmail.com",
      "isDelete" : "TRUE"
    },
    {
      "userId": "y",
      "email": "y@gmail.com",
      "isDelete" : "FALSE"
    }
  ],
  "authMenuList": [
    {
    "menuId" : "ATHMGT",
    "viewFlag": "1",
    "createFlag": "1",
    "editFlag": "0",
    "deleteFlag": "1",
    "creditnoteFlag": "0",
    "cancelFlag": "1"
  }]
}
Run Code Online (Sandbox Code Playgroud)

但我得到的输出是

{
    "authSeqNo": "0",
    "flagNewEdit": "NEW",
    "groupId": "TEST",
    "groupName": "GroupN",
    "roleId": "Administrator",
    "recordStatus": ""
} {
    "userList": "[{"
    userId ":"
    x ","
    email ":"
    x @v.com ","
    delete ":"
    "},  {
        "userId": "asdkl",
        "email": "x@sd.com",
        "delete": ""
    }]
"}  {
    "authMenuList[{"
    menuId ":"
    ATHMGT ","
    viewFlag ":"
    1 ","
    createFlag ":"
    1 ","
    editFlag ":"
    0 ","
    deleteFlag ":"
    1 ","
    creditnoteFlag ":"
    0 ","
    cancelFlag ":"
    1 "}]}
Run Code Online (Sandbox Code Playgroud)

我是 javascript 新手并正在学习它。请帮我解决这个问题。

Max*_*Max 5

您可以将它们转换为 JS 对象并组合它们

所以:

const obj1 = JSON.parse(json1);
const obj2 = JSON.parse(json2);
const obj3 = JSON.parse(json3);

const mergedObj = Object.assign(obj1, obj2, obj3);

const jsonStr = JSON.stringify(mergedObj);
Run Code Online (Sandbox Code Playgroud)

jsonStr 应该将三个 JSON 组合在一起


我刚刚看到你使用 JSON.stringify() 来获取你的字符串,所以如果你有三个对象,只需执行 Object.assign() 部分,你应该会很好。