MySQL中JSON和STRING互相转换

MySQL查询JSON 中,对于MySQL而言,字段类型JSON和STRING是不同类型,例如不能直接将 JSON 数据插入STRING字段,也不能直接用处理JSON的 JSON_EXTRACT() 函数来直接处理STRING字符串。此时我们需要使用转换函数进行类型转换

字符串转JSON对象

MySQL提供了 JSON_PARSE() 函数将字符串转换成JSON对象:

使用 JSON_PARSE() 函数将字符串转换成JSON对象例子
CREATE TABLE json_conversion_demo (
    id INT AUTO_INCREMENT PRIMARY KEY,
    json_string VARCHAR(255)
);

INSERT INTO json_conversion_demo (json_string) VALUES ('{"key": "value"}');

SELECT JSON_PARSE(json_string) AS json_data FROM json_conversion_demo;

JSON对象转字符串

JSON_UNQUOTE() 函数可以将JSON转换字符串

使用 JSON_UNQUOTE() 函数将JSON对象转为字符串
SELECT id, 
 JSON_UNQUOTE(JSON_EXTRACT(json_value,'$.name')) AS name, 
 JSON_UNQUOTE(JSON_EXTRACT(json_value,'$.price')) AS price 
FROM json_value_table;

参考