¿Cómo utilizar Java para obtener el foro json-CSDN en mysql5.7 versión 5.7?
Utilice ' dw`$$
Si está presente, elimine la función ` fn_Json_getKeyValue`$$
CREATE DEFINER = ` data `@ ` ` FUNCTION ` fn _ Json _ get key value `(
In _ JSON array varchar (4096), # cadena de matriz JSON
In_Index TINYINT, # número de serie del objeto JSON, desde 1 inicio.
In_KeyName VARCHAR(64)#Nombre de clave
) Devuelve el conjunto de caracteres VARCHAR(512) utf8
Inicio
Declaración vs _ return VARCHAR(4096);
Declarar vs_JsonArray, vs_Json, vs _ KeyName VARCHAR(4096);
# declarar vs _Json varchar(4096);
Declarar vi_pos1 , vi_pos2 SMALLINT unsigned;
#Escribir registro de monitoreo
#Insertar en dw.t_etl_log(sp_name, título, descripción)
# valores(' dw . fn _ Json _ get key value ', 'Obtener valor de clave a través del nombre de clave Json', concat ('in _ JSON array = ', in _ Json array)
SET vs _ JSON array = TRIM( en _ matriz JSON);
SET vs _ KeyName = TRIM(en _ KeyName);
Si vs_JsonArray = "" o vs_JsonArray está vacío
O vs_KeyName ="" o vs_KeyName está vacío
O in_Index lt= 0 o in_Index está vacío, entonces
SET vs_return = NULL
Otros
#Quitar los corchetes
SET vs _ JSON array = REPLACE(REPLACE(vs _ JSON array, '[', ''), ']', ' '); >#Obtener el objeto JSON especificado
SET vs _ JSON = SUBSTRING _ INDEX(SUBSTRING _ INDEX(vs _ JSON array, ' } ', in_index), ' } ', - 1);
Si vs_json = ' ' o vs_json está vacío, entonces
SET vs _ return = NULL
Otros
SET vs_KeyName = CONCAT(' " ', vs_KeyName, ' ":');
SET vi_pos1 = INSTR(vs_json, vs_KeyName);
IF VI_pos 1 gt; luego 0
#If el nombre de la clave existe
SET VI _ pos 1 = VI _ pos 1 CHAR _ LENGTH(vs _ KeyName
SET vi_pos2 = LOCATE (', ', vs_json, VI_pos 1); );
Si vi_pos2 = 0, entonces
#El último elemento no tiene "," delimitador ni terminador "} ”
SET VI_pos 2 = CHAR _ LENGTH(vs _ JSON) 1;
Fin IF;
SET vs _ return = REPLACE(MID( vs_JSON, vi_pos1, vi_pos2 - vi_pos1)
,'"',' ');
Fin IF;
Fin IF;
Fin IF;
RETURN(vs _ RETURN);
Fin$$
Separador;
Prueba: {"old_current_score": "2","new_current_core": "0", " old_grade_id": "1", "new_grade_id": "1", "grade".
seleccione el valor clave fn_Json_get (razón, 1, 'old_grade_id');