解析数据库JSON字段并使用mybatis-plus构造Wrapper

目录

1.JSON的格式

(1) JSON字符串/数值/布尔

(2) JSON对象

(3) JSON数组

(4) JSON相互嵌套

2.使用SQL函数解析JSON字段

(1) 解析单层JSON

(2) 解析多层JSON

(3) 使用JSON函数作为where条件

3.使用mybatis-plus构造JSON解析的Wrapper


开发中会遇到某字段的类型为json格式

本文讲述如何解析json字段,并根据json中某一key值查询数据库中对应的数据

JSON格式化校验网站推荐

1.JSON的格式

JSON常见的格式有:JSON字符串,JSON数值,JSON对象,JSON数组等

(1) JSON字符串/数值/布尔

{
    "key1": "value",
    "key2": 123,
    "key3": true
}

(2) JSON对象

为{}嵌套{}

{
    "man1": {
        "name": "zhangsan",
        "age": 30
    },
    "man2": {
        "name": "lisi",
        "age": 40
    }
}

(3) JSON数组

为{}嵌套[]

{
    "key1": [11,22,33],
    "key2": ["aa","bb","cc"]
}

(4) JSON相互嵌套

{}和[]相互嵌套

[
    {
        "bioqd": "u6_6_rHV",
        "aozoauoviy": {
            "zrnvlmwlj": "sZyK19l"
        },
        "wlpvmqemrfx": [
            false,
            382058623.0778751,
            -850013890.0693079
        ]
    },
    [
        1954935399,
        [
            true,
            996041004.12616,
            "rB"
        ]
    ]
]

2.使用SQL函数解析JSON字段

认识了JSON的格式,下面讲述如何使用SQL函数解析数据库中JSON字段

用到的方法:JSON_EXTRACT(json_doc, path[, path] ...)

json_doc:指定要解析的数据库字段名

path[, path] ...:指JSON的结构,指定到你要找的key值

(1) 解析单层JSON

假设数据库某一JSON字段如下

 

 我们可以编写SQL找到指定的value

(2) 解析多层JSON

假设数据库某一JSON字段如下

 编写SQL找到所有的name

 会发现使用$**.key会找到所有key为name的字段,有时候这个结果不是我们想要的

 我们可以使用这种形式,找到我们想找到的值(可点多层)

(3) 使用JSON函数作为where条件


3.使用mybatis-plus构造JSON解析的Wrapper

使用QueryWrapper的apply()方法把查询语句追加到条件后,会自动加上and关键字

        String name = "lisi";
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.apply("JSON_EXTRACT(test, '$.man2.name') = {0}", name);

本篇文章分享到这里就结束啦!

点个赞再走吧~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值