MYSQL中OLD直接转json字符串怎么解决
时间: 2023-12-09 07:05:41 浏览: 161
在MySQL中,如果你需要将一个旧的JSON格式的字符串(使用反斜杠转义双引号)转换成新的JSON格式,可以使用JSON_OBJECT()和JSON_EXTRACT()函数来实现。例如:
```sql
SELECT JSON_OBJECT('name', JSON_EXTRACT('{"name": "John", "age": 30, "city": "New York"}', '$.name'),
'age', JSON_EXTRACT('{"name": "John", "age": 30, "city": "New York"}', '$.age'),
'city', JSON_EXTRACT('{"name": "John", "age": 30, "city": "New York"}', '$.city')
) AS json;
```
这将输出以下JSON字符串:
```
{"name": "John", "age": 30, "city": "New York"}
```
请注意,JSON_EXTRACT()函数中的第一个参数应该是旧的JSON格式的字符串,第二个参数应该是你要提取的JSON键。JSON_OBJECT()函数中的每个参数都应该是键值对,其中键是新的JSON格式的键,值是JSON_EXTRACT()函数的结果。
如果你需要将新的JSON格式的字符串转换回旧的JSON格式,可以使用JSON_QUOTE()函数来转义双引号。例如:
```sql
SELECT REPLACE(JSON_QUOTE('{"name": "John", "age": 30, "city": "New York"}'), '\\"', '"') AS old_json;
```
这将输出以下JSON字符串:
```
{"name": "John", "age": 30, "city": "New York"}
```
在这个例子中,JSON_QUOTE()函数将新的JSON格式的字符串转义为旧的JSON格式的字符串,然后使用REPLACE()函数去掉转义的双引号。
阅读全文