记录一次数据中包含转义字符\引发的bug

后端返回给前端的数据是:

{
  "bizObj": {
    "current": 1,
    "orders": [
      
    ],
    "pages": 2,
    "records": [
      {
        "from": "1d85b8a4bd33aaf99adc2e71ef02960e",
        "fromName": "ddd",
        "id": "742836e8f3d00a6e2ebd568f3a2dd75e",
        "img": "/net-hospital-admin/images/boy.png",
        "msgTime": "2024-01-10 17:04:04",
        "msgType": "10",
        "text": "{\"medicalRecordId\":\"59a2827da4a54d5ba0eea13ad725eef4\",\"recordNum\":\"2024010215321313590002\",\"topicId\":\"01b79d7931d34a9c8d5a5f3e36681137\",\"createTime\":\"2024-01-02 15:32:13\",\"handlingOpinion\":\"null\",\"diagnosis\":\"人类免疫缺陷病毒\\[HIV\\]病造成的其他传染病和寄生虫病\",\"mainStatement\":\"ing倪敏破狗肉\",\"name\":\"asdfafd\",\"doctorName\":\"asdfads\",\"orgName\":\"asdfsaf\"}",
        "type": "0"
      }
    ],
    "searchCount": true,
    "size": 8,
    "total": 14
  },
  "retCode": "0000",
  "retMsg": "处理成功",
  "timestamp": "1704878596839"
}

其中 text的内容{\"medicalRecordId\":\"59a2827da4a54d5ba0eea13ad725eef4\",\"recordNum\":\"2024010215321313590002\",\"topicId\":\"01b79d7931d34a9c8d5a5f3e36681137\",\"createTime\":\"2024-01-02 15:32:13\",\"handlingOpinion\":\"null\",\"diagnosis\":\"人类免疫缺陷病毒\\[HIV\\]病造成的其他传染病和寄生虫病\",\"mainStatement\":\"ing倪敏破狗肉\",\"name\":\"asdfasd\",\"doctorName\":\"asdfdsa\",\"orgName\":\"asdfdas\"}

需要转成对象来用 这里转不了  是因为diagnosis的数据中\\[HIV\\] 有转义字符造成的

原始数据是带有一个转义字符 \[HIV\]  返回给前端是\\[HIV\\]

转换不了的原因是因为text的内容是自己拼接的json字符串

也就是把这个内容 \[HIV\] 直接拼到json字符串中,这个是错误的,因为实际上真正变成json字符串是要变成 \\[HIV\\] 多一个转义字符

最后返回给前端的时候应该是要变成 \\\\[HIV\\\\]

{\"medicalRecordId\":\"59a2827da4a54d5ba0eea13ad725eef4\",\"recordNum\":\"2024010215321313590002\",\"topicId\":\"01b79d7931d34a9c8d5a5f3e36681137\",\"createTime\":\"2024-01-02 15:32:13\",\"handlingOpinion\":\"null\",\"diagnosis\":\"人类免疫缺陷病毒\\\\[HIV\\\\]病造成的其他传染病和寄生虫病\",\"mainStatement\":\"ing倪敏破狗肉\",\"name\":\"asdfsdf\",\"doctorName\":\"asdfdsaf\",\"orgName\":\"asdfdas\"}  这样才是正确的

原始拼接json字符串的方式 手动拼接

正确方式

记录一次数据中包含转义字符\引发的bug_第1张图片

用map去封装对象 然后转成json字符串

你可能感兴趣的:(bug)