在 JSON 字段数据类型 Mariadb 中存储/插入 XML

Store/insert XML in JSON field datatype Mariadb

提问人:dinu0101 提问时间:9/16/2023 更新时间:9/17/2023 访问量:36

问:

我正在尝试将所有用户数据以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`

请帮忙

JSON XML 玛丽亚德

评论

0赞 Michael Kay 9/17/2023
尝试双重转义:'\\“1.0\\”

答:

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
它对我有用。