提问人:dinu0101 提问时间:9/16/2023 更新时间:9/17/2023 访问量:36
在 JSON 字段数据类型 Mariadb 中存储/插入 XML
Store/insert XML in JSON field datatype Mariadb
问:
我正在尝试将所有用户数据以JSON格式存储在MariaDB中。有时很少有字段有需要存储的XML数据,但是在JSON中存储XML数据时,我收到错误。请帮助我如何在JSON中存储数据
例:
create table temp ( `responseJson` json);
insert into temp value('{"type": "Aadhaar Front Bottom","details":{"qr": {"value": "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <PrintLetterBarcodeData uid=\"975876072\" name=\"Akshay ZXY\" gender=\"M\" yob=\"1963\""}}}');
但是我在插入上述值时出现错误。
ERROR 4025 (23000): CONSTRAINT `temp.responseJson` failed for `marketplace`.`temp`
请帮忙
答:
2赞
Georg Richter
9/17/2023
#1
MariaDB 将反斜杠后跟双引号转换为双引号:
SELECT '{"key" : "val\"ue"}';
+--------------------+
| {"key" : "val"ue"} |
+--------------------+
| {"key" : "val"ue"} |
+--------------------+
{"key" : "val"ue"}
不是有效的 JSON 字符串(您可以使用 JSON_VALID()) 进行检查),因为 JSON 需要在括起来的双引号之前使用反斜杠。所以要么使用代替,要么使用JSON_QUOTE。\\"
\"
SELECT json_valid('{"key" : "val\"ue"}') AS error,
json_valid('{"key" : "val\\"ue"}') AS ok;
+-------+------+
| error | ok |
+-------+------+
| 0 | 1 |
+-------+------+
评论
0赞
dinu0101
9/17/2023
它对我有用。
评论