Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar Java para obtener el foro json-CSDN en mysql5.7 versión 5.7?

¿Cómo utilizar Java para obtener el foro json-CSDN en mysql5.7 versión 5.7?

Delimitador $$

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');