Mysql插入JSON串会被去一层转义

2023-05-16

Mysql插入JSON串会被去一层转义

问题描述

背景:在数据库更新、新增一个字段为JSON串的时候,被去一层转义,导致程序解析失败,报错

原JSON串

[
    {
        "rules": [
            {
                "ruleType": 1,
                "value": "1458",
                "rate": 90
            },
            {
                "ruleType": 3,
                "value": "{\"begin\":\"测试欢迎语\",\"end\":\"测试结束语\",\"template\":[\"6962def-sadfa\"],\"title\":\"标题\"}",
                "rate": 10
            }
        ],
        "tag": 1,
        "sort": 2,
        "ruleName": "分流默认路由"
    },
    {
        "rules": [
            {
                "ruleType": 1,
                "value": "1533",
                "rate": ""
            }
        ],
        "labelCode": "red_user",
        "sort": 1,
        "tag": 2,
        "ruleName": "标签路由"
    }
]

先对JSON压缩

[{"rules": [{"ruleType": 1,"value": "1458","rate": 90},{"ruleType": 3,"value": "{\"begin\":\"测试欢迎语\",\"end\":\"测试结束语\",\"template\":[\"6962def-sadfa\"],\"title\":\"标题\"}","rate": 10}],"tag": 1,"sort": 2,"ruleName": "分流默认路由"},{"rules": [{"ruleType": 1,"value": "1533","rate": ""}],"labelCode": "red_user","sort": 1,"tag": 2,"ruleName": "标签路由"}]

然后就直接

update `shuidi_cs_biz`.`session_sub_route_rule` set rules = '[{"rules": [{"ruleType": 1,"value": "1458","rate": 90},{"ruleType": 3,"value": "{\"begin\":\"测试欢迎语\",\"end\":\"测试结束语\",\"template\":[\"6962def-sadfa\"],\"title\":\"标题\"}","rate": 10}],"tag": 1,"sort": 2,"ruleName": "分流默认路由"},{"rules": [{"ruleType": 1,"value": "1533","rate": ""}],"labelCode": "red_user","sort": 1,"tag": 2,"ruleName": "标签路由"}]' where id = 1;

update 或者 insert 都行, 然后查下更新后的

[
{
    "rules": [
    {
        "ruleType": 1,
        "value": "1458",
        "rate": 90
    },
    {
      //注意这部分,解析出现问题了
        "ruleType": 3,
        "value": "{"
        begin ":"
        测试欢迎语 ","
        end ":"
        测试结束语 ","
        template ":["
        6962 def - sadfa "],"
        title ":"
        标题 "}",
        "rate": 10
    }],
    "tag": 1,
    "sort": 2,
    "ruleName": "分流默认路由"
},
{
    "rules": [
    {
        "ruleType": 1,
        "value": "1533",
        "rate": ""
    }],
    "labelCode": "red_user",
    "sort": 1,
    "tag": 2,
    "ruleName": "标签路由"
}]

然后GG了,线上出问题了。

注意

这种问题出现在**,JSON字符串字段,包含一个转义字符串的情况**,如图

image-20220415110757838

这里,

解决的办法

第一种: 在压缩字符串后,进行一次转义

[{\"rules\": [{\"ruleType\": 1,\"value\": \"1458\",\"rate\": 90},{\"ruleType\": 3,\"value\": \"{\\\"begin\\\":\\\"测试欢迎语\\\",\\\"end\\\":\\\"测试结束语\\\",\\\"template\\\":[\\\"6962def-sadfa\\\"],\\\"title\\\":\\\"标题\\\"}\",\"rate\": 10}],\"tag\": 1,\"sort\": 2,\"ruleName\": \"分流默认路由\"},{\"rules\": [{\"ruleType\": 1,\"value\": \"1533\",\"rate\": \"\"}],\"labelCode\": \"red_user\",\"sort\": 1,\"tag\": 2,\"ruleName\": \"标签路由\"}]

然后新增,修改就都可以

第二种

有第一种,必然有第二种,哈哈哈

1、我用的navicat,直接在工具上,copy as insert statement

image-20220415111120449

2、 然后发现,人家的格式就是转义后的,参考这个维护就行

insert into `shuidi_cs_biz`.`session_sub_route_rule` ( `sub_route_name`, `channel_id`, `rules`, `status`, `is_delete`, `create_time`, `update_time`) values ( '路由', '7', '[{\"rules\": [{\"ruleType\": 1,\"value\": \"1458\",\"rate\": 90},{\"ruleType\": 3,\"value\": \"{\"begin\":\"测试欢迎语\",\"end\":\"测试结束语\",\"template\":[\"6962def-sadfa\"],\"title\":\"标题\"}\",\"rate\": 10}],\"tag\": 1,\"sort\": 2,\"ruleName\": \"分流默认路由\"},{\"rules\": [{\"ruleType\": 1,\"value\": \"1533\",\"rate\": \"\"}],\"labelCode\": \"red_user\",\"sort\": 1,\"tag\": 2,\"ruleName\": \"标签路由\"}]', '1', '1', '2021-07-26 10:25:02', '2022-04-15 11:05:46');

这个问题采坑线上两次了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql插入JSON串会被去一层转义 的相关文章

  • Struts2 中有多种结果类型?

    我有一个使用 Tiles 的 Struts2 应用程序 如何在操作映射中获取多种结果类型 因为我需要将de输出设置为JSON数据 并且同时Tiles 我努力了
  • Twitter api 文本字段值被截断

    为什么文本字段值被截断以及如何获得完整的值 截至目前 我正在尝试获取如下所示的文本字段值 do if let responseObject try NSJSONSerialization JSONObjectWithData respons
  • PyQt:数据不可 JSON 序列化

    我是 PyQt GUI 的新手 我想获取a的数据QLineEdit文本框 为此我正在使用text 方法 我正在获取数据 但数据类型是QString 我需要将其作为 json 数据传输到服务器 为此我使用json dumps 方法 但我收到错
  • libmysqlclient.a 和 libmysqlclient_r.a 有什么区别?

    我应该使用哪个来链接 mysqlclient 库 它们之间有什么区别 我似乎找不到答案 谢谢 较新版本的 MySQL 客户端发行版不包含 r 版本 有些可能有从 libmyqslclient r a 到 libmyqslclient a 的
  • BigQuery 如何获取 JSON 结构中的值的总和?

    我有以下查询 SELECT JSON EXTRACT json Weights as weight from select Weights blue 1 0 purple 0 0 yellow 1 0 green 1 0 as json 返
  • 非常大的字段会对 MySQL 数据库产生负面影响吗?

    我目前正在使用 Django 构建一个网站 并希望托管用户生物样式页面 该页面可能长达几 KB 这些字段不一定需要搜索 但在查找用户名时确实需要提供 将这些数据存储在数据库中会产生负面影响吗 如果我使用带有数据库链接的静态文本文件 我的服务
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • 用 pandas DataFrame 替换 mysql 数据库表中的行

    Python 版本 2 7 6 熊猫版本 0 17 1 MySQLdb 版本 1 2 5 在我的数据库中 PRODUCT 我有一张桌子 XML FEED 表 XML FEED 很大 数百万条记录 我有一个 pandas DataFrame
  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • 双向链表转 JSON

    我有一个三维结构 实际上是一个具有六个节点的双向链表 即左 右 上 下 进 出 如果一个节点位于另一个节点的右侧 那么该节点将毫无疑问位于第一个节点的左侧 喜欢 实际上这是一个 3D 结构 但为了便于理解 我给出了一个 2D 示例 现在我必
  • 将庞大数据库从亚马逊RDS导出到本地mysql

    我在 Amazon RDS 上有一个 mysql 数据库 大约 600GB 数据 我需要将其移回本地专用服务器 但我不知道从哪里开始 每次我尝试初始化 sqldump 时它都会冻结 有没有办法将其移至 S3 甚至可能在开始下载之前将其分成更
  • 在Unity游戏中保存数据的最佳方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道 在 Unity 游戏中保存数据的最佳方式是什么 JSON 如果是这样 怎么办 谢谢 以下是一些不同的方式和方法保存 Unit
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • Mysql插入表后不显示右单引号(’)

    我有一个名为 测试 的表 我插入了一行 其中包含unicode字符右单引号 0x2019在名称字段中 SQL insert into Testing values Sno Name Address insert into Testing v
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • antd 时间类组件的国际化 locale 设置不生效 解决方案汇总

    antd 时间类组件的国际化 locale 设置不生效 xff0c 踩坑之路和解决办法 问题 如图所示 xff0c antd 时间类组件中英文混合显示 xff1a 初始配置代码如下 xff1a span class token keywor
  • 【CCF 201809-3】元素选择器

    思路 处理每一行 xff1a 每一行都处理为一个结构体 xff0c 包含3个属性 xff1a 级别 xff08 rank xff09 元素名称 xff08 element xff09 id名称 级别 61 点的数量 2 元素名称 amp i
  • 无需上架,接入穿山甲广告和广点通广告 sdk

    我们都知道广告是商业流量变现最重要的方式之一 xff0c 所以基本所有的游戏或者app都会接入广告sdk 而我们都知道穿山甲广告sdk和广点通广告sdk是国内收益相对比较高的 xff0c 但是想接入穿山甲广告sdk 你的游戏或者app必须上
  • JavaScript基础之缓存机制:HTML5离线缓存

    浏览器的缓存机制 xff0c 多种多样 xff0c 离线缓存是其中之一 xff0c 这也是为了更好的用户体验 xff0c 性能优化的重要一步 我们来讲讲这个离线缓存 什么是HTML5离线缓存 xff1f 离线缓存 xff08 Applica
  • IDEA 调试部署 Web-INF/classes下面不生成class文件

    IDEA 调试部署 WEB INF classes下面不生成class文件 原因 xff1a 编译版本 1 8 或者其他版本 xff0c 没有设置 异常 xff1a at javax management remote rmi RMICon
  • Macbook 终端Terminal下如何查看文件生成日期和修改日期

    有时候在用vim命令修改配置文件时 xff0c 不确定是否被修改 xff0c 为了与旧版本比较 xff0c 最好查一下文件生成和修改日期 xff0c 方法如下 xff1a span class pln style margin 0px pa
  • 仿微信地图定位列表

    gitbub源代码链接 xff1a https github com MinLee6 LMMapLocationList 首先按照百度配置要求配置开发环境 1 在AppDelegate mm中设置百度定位的key BOOL applicat
  • FreeBSD zfs安装bhyve跑虚拟机

    FreeBSD zfs文件系统下跑bhyve虚拟机 xff0c 使用简单且稳定高效 xff0c 今天新装一个n3450的小主机 xff08 省电 xff09 xff0c 此简单记录下vm bhyve工具的使用 1 安装 a xff0c 更改
  • vmware下unbuntu虚拟机网络启动后过几分掉线原因

    我vmware用的是17 01 build 21139696版本 xff0c ubuntu使用的是16 lts版本 xff0c 总是开机或挂起恢复后过一段时间网络就掉线 xff0c 但网络的上下两个箭头符号却是正常的 xff0c 并未显示掉
  • 联想 ubuntu14.04无线网卡被禁用的解决办法

    新人在学习Linux时 xff0c 一般会选择安装ubuntu系统 xff0c 但是很多笔记本都会出现安装系统后无限网卡被禁用的问题 xff0c 这种情况的原因我认为并不是无线网卡的驱动没有安装 xff0c 而是ubuntu系统驱动的某个地
  • 序列切片

    序列切片 切片 切片就是指对操作对象 截取 其中一部分的操作 字符串 列表 元祖 有序序列 都支持切片操作 基本语法 顾头不顾尾 序列名称 span class token punctuation span 开始位置下标 span clas
  • 阿里云领取免费2H2G云服务器&证书分享(一):Apsara Clouder云计算专项技能认证:云服务器ECS入门

    这个证书是你领服务器一个月内要考的 xff0c 内容也不难 新老用户都能领 xff0c 要求是有学生认证 当然这个证书是独立的 xff0c 你也可以不认证直接考 点击这个链接 阿里云飞天计划 跳转到阿里云飞天计划 领的服务器如果想不到要做什
  • 卷积神经网络的旋转不变性理解

    卷积神经网络本身的设计对旋转不变性没有进行专门的考虑 xff0c 只不过max pooling可以稍微补偿一下这个功能 xff0c 只是角度变化太大 xff0c 可能会作用不大 xff0c 但因为max pooling并不是为此而设计的 x
  • VS code + Win10 Linux子系统(Ubuntu)开发ESP32

    Windows开发ESP32 最近在研究EPS32 xff0c 但是和STM32之类的单片机不同 xff0c 国内资料大多是在arduino上的简单修改 xff0c 想开发底层硬件比较困难 xff1b 而官方提供的eclipse集成环境体积
  • malloc和calloc的区别

    malloc和calloc的区别有两点 xff1a 两个函数的参数不一样 malloc只有1个参数 xff0c 而calloc有两个参数内存分配后初始化不一样 calloc会把分配的内存全部初始化为0 xff0c 而malloc没有初始化操
  • ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

    欢迎关注大数据和人工智能技术文章发布的微信公众号 xff1a 清研学堂 xff0c 在这里你可以学到夜白 xff08 作者笔名 xff09 精心整理的笔记 xff0c 让我们每天进步一点点 xff0c 让优秀成为一种习惯 xff01 有时候
  • CSDN完整导出pdf博客内容,去除冗余,仅保留blog

    本文完全参考自其它博客 xff1a 新CSDN文章转成PDF 打印 去空白 IT说的博客 CSDN博客 如何将CSDN的文章导出为pdf xff1f 我的blog屋 CSDN博客 csdn导出pdf 原博客代码执行后还保留了博客作者栏 xf
  • WSL2连接调用USB设备

    声明 xff1a 本文教程来源于微软官网WSL教程 xff0c 链接地址 xff1a Connect USB devices 最近在学OpenCV xff0c 发现微软的WSL是个好东西 xff0c 结合VS Code编辑器 xff0c 无
  • 树莓派使用code-server遇到的问题

    code server在树莓派上使用是没有问题的 xff0c 只要保证树莓派系统较新 xff0c 一般不会遇到什么问题 1 以下一系列出现的问题 xff0c 都与系统环境比较旧有关 xff1a code进程一直100 占用CPU浏览器建立V
  • Mysql插入JSON串会被去一层转义

    Mysql插入JSON串会被去一层转义 问题描述 背景 xff1a 在数据库更新 新增一个字段为JSON串的时候 xff0c 被去一层转义 xff0c 导致程序解析失败 xff0c 报错 原JSON串 span class token pu