JSON格式数据取值问题
使用的数据库JSON字段结构:
不管是 JSONObject:

还是JSONArray:

或

取值步骤如下:
1、在实体类上增加注解
@TableName(value = "xxxx", autoResultMap = true)
字段上增加注解:
@TableField(typeHandler = FastjsonTypeHandler.class)

2、使用的是XML时,需要在xml中有对应的实体类映射,且JSON格式的数据需要加上typeHandler 属性

特别注意:在以上resultMap中,并且是是使用了typeHandle的字段,千万不要使用驼峰别名(使用了就会使查询的值为null,本人踩过的坑),错误示例如:

即使是需要使用别名,也需使用和数据库字段一致的字段,如:

在对应的查询SQL中,使用 字段名 -> '$."key"',有的版本只需要 字段名 -> '$.key' 即可;

若是对象,则

字段名->'$[*].type'
3、若是使用lambda时,需要使用.apply,结合实际需求,对JSON字段取值,取值demo: 字段名 -> '$.\"key\"'

注:\"是进行转义使用

浙公网安备 33010602011771号