正则表达式添加双引号以使 JSON 对象

RegEx to add double quotes to make JSON object

提问人:Michal Mandák 提问时间:10/26/2023 最后编辑:Michal Mandák 更新时间:10/27/2023 访问量:40

问:

我需要在字符串中的键/值对中添加双引号以创建 JSON 对象:

var str = "[{u_id=1765019, u_table=x_task, u_parent_id=311673793, u_parent_table=x_order,  u_origin_system=XMO, u_request_id=36f4811d-c343-447d-ab84-a9e233c38e16, u_transaction_id=ab1234cd-abcd-1234-ab1c-012345abcdefghijk0}, {u_id=1765019, u_table=x_att2_task, u_parent_id=311673793, u_parent_table=x_order, u_origin_system=XMO, u_request_id=36f4811d-c343-447d-ab84-a9e233c38e11, u_transaction_id=ab1234cd-abcd-1234-ab1c-012345abcdefghijk0}, {u_id=176501, u_table=x_task, u_parent_id=311673793, u_parent_table=x_order, u_origin_system=XOM, u_request_id=36f4811d-c343-447d-ab84-a9e233c38erew, u_transaction_id=ab1234cd-abcd-1234-ab1c-012345abcdefghijk0}]";

我试过正则表达式:

str.replace(/ /g, '')
        .replace(/([\w]+)=/g, '"$1"=')
        .replace(/=([\w]+)/g, ':"$1"')
        .replace(/=([[{])/g, ':$1'));

这很有效,但只有当字符串中不包含u_request_id和u_transaction_id时。“-”有问题。

您能建议或添加另一个正则表达式来解决这个问题吗? 谢谢。

JSON 双引号

评论

2赞 jonrsharpe 10/26/2023
这是从哪里来的,为什么不改变它的序列化方式呢?
0赞 Michal Mandák 10/27/2023
它来自邮递员作为 POST 响应,作为常规 JSON 直接进入 ServiceNow。出于某种原因,SN 正在从该字符串中删除双引号。
0赞 Armali 10/27/2023
我想知道这对你有什么好处 - 对我来说,只有当我删除很多反斜杠时,它才有效。
0赞 Michal Mandák 10/27/2023
StackoverFlow 刚刚在我的原始帖子中添加了一些额外的字符......纠正!

答: 暂无答案