在Javascript中使用变量拆分和连接

我有 ff。数组的 JSON 负载

  {
    "Meta": {
        "LastAvailableDateTime": "",
        "FirstAvailableDateTime": "",
        "TotalPages": 1,
        "Count": 2
    },
    "Links": {
        "Next": null,
        "Previous": null,
        "Self": ""
    },
    "Data": {
        "Transactions": [
            {
                "AuthCode": "175601",
                "CardId": "************8104"
            },
            {
                "AuthCode": "783453",
                "CardId": "************8104"
            },
           {

                "AuthCode": "12132",
                "CardId": "************8104"
            }
        ]
    }
}

我想通过将 CardId 重命名为 MaskedCardId 并添加一个名为 CardId 的新参数和实际的 Card id 来覆盖此有效负载。

我的代码是 ff。以下

var json = //The Parsed JSON Payload;
var CardId = "123458104"

json = JSON.parse(
       JSON.stringify(json).split('"CardId":')
           .join('"CardId":CardId,"MaskedCardId":')
);

我已经可以用名为 MaskedCardId 的重命名参数替换 CardId。与 ff。代码

 json = JSON.parse(JSON.stringify(json).split('"CardId":').join('"MaskedCardId":'));

但是每当我尝试使用变量值添加名为 CardId 的新参数时,都会出现错误。

失败,错误:Javascript 运行时错误:“SyntaxError:意外标记:C

如何使这行代码符合我的预期目的?TIA

回答

记住旧值

const data = {
  "AuthCode": "1",
  "PostingDate": "2021-05-06",
  "Amount": "6000.28",
  "CardId": "************8104",
};

const CardIdNew = "123458104";
const CardIdOld = data.CardId;

data.CardId       = CardIdNew;
data.MaskedCardId = CardIdOld;

console.log(data);

或者更简单地说:

const data = {
  "AuthCode": "1",
  "PostingDate": "2021-05-06",
  "Amount": "6000.28",
  "CardId": "************8104",
};

data.MaskedCardId = data.CardId;   // Add 
data.CardId       = "123458104";   // Override 

console.log(data);

问题编辑后的附录

循环包含事务的数组:

const json = {"Meta":{"LastAvailableDateTime":"","FirstAvailableDateTime":"","TotalPages":1,"Count":2},"Links":{"Next":null,"Previous":null,"Self":""},"Data":{"Transactions":[{"AuthCode":"175601","CardId":"************8104"},{"AuthCode":"783453","CardId":"************8104"},{"AuthCode":"12132","CardId":"************8104"}]}};

const CardId = "123458104"

json.Data.Transactions.forEach(ob => {
  ob.MaskedCardId = ob.CardId;
  ob.CardId = CardId;
});

console.log(json);


以上是在Javascript中使用变量拆分和连接的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>