En el desarrollo empresarial anterior, los datos recibidos por un campo estaban en formato Json y debían almacenarse en formato Json:
Esto se almacena en la base de datos, aquí hay una matriz Json.
[
{
"label": "result1",
"name": "较好",
"readonly": false
},
{
"label": "result2",
"name": "一般",
"readonly": false
},
{
"label": "result3",
"name": "较差",
"readonly": false
},
{
"label": "result4",
"name": "极差",
"readonly": false
}
]
Si quieres acceder a estos datos, ¿qué harás? Al guardar, la interfaz le enviará directamente los datos en formato Json. Al sacarlo, puede convertir los datos de Json en una Lista para otras operaciones.
Pero en el pensamiento orientado a objetos, cada elemento en esta matriz Json es un objeto, podemos guardarlo en forma de Lista en la capa de código y luego sacarlo en forma de Lista, la conversión de Json central es automáticamente hecho por el programa, no es necesario desarrollar para transferir manualmente.
Por supuesto que hay una forma de lograrlo, veamos el efecto:
Escribimos este campo en la clase de entidad en formato Lis y le agregamos un @ColumnType
comentario. Esta anotación se utiliza para realizar la conversión automática entre List y Json. Luego debe configurarse en el archivo Mapper.xml:
<result column="survey_conclusion_options" property="surveyConclusionOptions" typeHandler="com.xxx.SurveyConclusionTemplateTypeHandler" />
Agregamos en este campo typeHandler
.
De esta forma, cuando descargamos el código para guardar los datos, agregamos List en lugar de Json.
Verifique la base de datos, se ha convertido automáticamente a Json:
Cuando lo sacamos, solo necesitamos consultar directamente, y no necesitamos hacer otro procesamiento, lo que devolvemos es List.
¿Es de fácil acceso?
Ahora echemos un vistazo a SurveyConclusionTemplateTypeHandler
esta clase de conversión en la anotación de campo .
Se usa aquí JsonTypeHandler
y especifica la clase de entidad.
Echemos un vistazo JsonTypeHandler
.
Principalmente hacer procesamiento Json. El código completo se puede descargar en línea.
Bueno, este artículo termina aquí, espero que sea de ayuda para todos.