java读取多级Json?



在平常的开发中,我们可能会有这样的需求:

业务数据在存储的时候,并不是以mysql中的varcharint等格式来存储的,而是使用json格式.

这样做的好处是当数据结构有变化或者需求变化时,我们不用再添加字段,方便扩展.

那么mysql中json格式的数据我们使用mybatis或者mybatisplus读取以后,肯定是希望转换成对象或者对象集合的,本篇博文就记录一下使用mybatis读取json格式的数据转换为对象的方法

首先我们如果要使用sql语句来在表中添加一个json格式的字段,可以使用以下脚本:

添加完成以后,我们可以在这个字段中保存json对象或者json数组格式的字符串.

当前的业务场景是: alert_up_config字段中,是个jsonArr,保存的是告警的升级规则,比如持续时间,次数等.

首先我们可以使用sql语句来提取我们需要的json字段,语法如下:

#json对象类型处理

比如对于我们上面的示例数据,我们要查询出alert_up_config字段中的alertNum的值,可以使用如下语句:

//保存数据到数据库之前的处理 //下面三个时候拿到数据以后的处理

也就是说,如果我们要处理从mysql中取出的数据,就可以实现这个接口,来自定义我们的数据处理逻辑,得到我们想要的数据.

现在对于我们来说,我们的源数据是这样的:

现在,我们的需要mybatis或者mybatisplus帮助我们将数据库中的json数据自动转换为相应的格式,一起来看下怎么实现吧!

它抽象了json处理的方法:

同时,它提供两个抽象方法,用于提供给不同的json包:

  • autoResultMap 参数表明字段在查询处理的时候自动转换为对象

在xml中实现json和对象的转换也比较简单

同样的handler,只是配置方式从注解改成xml中的属性了.

在本篇博文中,介绍了数据库json字段和java对象,以及集合对象的相关转换,记录在这里,以后有需要的时候可以及时查阅

我在Android中使用Spring进行POST调用,当上面的错误弹出时。我看到所有的答案都是关于这个问题的,但是在他们看来,他们似乎在他们想要转换为JSON的对象中有数组或列表。煤矿的很简单:

对不起,您收到的英语不好

我要回帖

更多关于 java web 的文章

 

随机推荐