当前位置: 首页 > news >正文

六安论坛招聘网最新招聘网站seo服务公司

六安论坛招聘网最新招聘,网站seo服务公司,商城免费建站系统,计算机网络规划与设计文章目录 前言数据库问题背景后端返回实体对象前端 实现后端返回List<Map<String, Object>>前端 前言 在这篇文章&#xff0c;我们保存了数据库的jsonb类型&#xff1a;MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询 这篇文章介绍了模糊查询json/json…

文章目录

  • 前言
  • 数据库
  • 问题背景
    • 后端返回实体对象
    • 前端
  • 实现
    • 后端返回List<Map<String, Object>>
    • 前端


前言

在这篇文章,我们保存了数据库的jsonb类型:MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询

这篇文章介绍了模糊查询json/jsonb类型:PostgreSQL 查询json/jsonb是否存在某个片段

在模糊查询json/jsonb之前,我们得拿到正确的json/jsonb片段,比如我们模糊查询好几个连着的键值对,如果我们拿到的键的顺序打乱了,我们想要一次性模糊查询json/jsonb数据就查询不到正确的数据了。

本文接下来将会讲解在MyBatis-Plus中如何实现返回给前端json/jsonb数据的键值对格式和数据库的格式一致。


数据库

这有一组jsonb类型的数据:

在这里插入图片描述

问题背景

后端返回实体对象

  • specialControl为jsonb类型

以下代码实现了数据返回接口,并可模糊查询jsonb类型

@GetMapping
@ResponseBody
public Object get(@RequestParam(value = "id", required = false) String id,@RequestParam(value = "name", required = false) String name,@RequestParam(value = "specialControl", required = false) String specialControl) {MPJQueryWrapper<Strategy> mpjQueryWrapper = new MPJQueryWrapper<>();mpjQueryWrapper.selectAll(Strategy.class).eq(StringUtil.isNotEmpty(id), "t.id", id).like(StringUtil.isNotEmpty(name), "t.name", name).orderByDesc("t.create_time");if (StringUtil.isNotEmpty(specialControl)) {mpjQueryWrapper.like("t.special_control::text", specialControl.replace(":", ": ").replace(",", ", "));}return strategyService.selectJoinList(Strategy.class, mpjQueryWrapper);
}

前端

序列化Json对象并输出

console.log(JSON.stringify(this.form.specialControl))

输出数据如下:

在这里插入图片描述

可以看到,content 内的键值对的顺序被打乱,和数据库的不一致。

实现

后端返回List<Map<String, Object>>

数据库列名为 special_control,前端数据为驼峰格式,需进行别名 special_control as \"specialControl\"

此时数据库的jsonb数据会被序列化返回给前端,所以jsonb的键值对顺序不会被打乱

  • 序列化:把对象转换为字节序列的过程称为对象的序列化
  • 反序列化:把字节序列恢复为对象的过程称为对象的反序列化
@GetMapping
@ResponseBody
public List<Map<String, Object>> get(@RequestParam(value = "id", required = false) String id,@RequestParam(value = "name", required = false) String name,@RequestParam(value = "specialControl", required = false) String specialControl) {MPJQueryWrapper<Strategy> mpjQueryWrapper = new MPJQueryWrapper<>();mpjQueryWrapper.select("t.id as id, t.name as name, t.special_control as \"specialControl\"").eq(StringUtil.isNotEmpty(id), "t.id", id).like(StringUtil.isNotEmpty(name), "t.name", name).orderByDesc("t.create_time");if (StringUtil.isNotEmpty(specialControl)) {mpjQueryWrapper.like("t.special_control::text", specialControl.replace(":", ": ").replace(",", ", "));}return strategyService.listMaps(mpjQueryWrapper);
}

前端

if (this.form.specialControl != null) {// 反序列化this.form.specialControl = JSON.parse(this.form.specialControl)// 序列化并输出console.log(JSON.stringify(this.form.specialControl))
} else {this.form.specialControl = []
}

输出数据如下:

在这里插入图片描述

即使前端JSON.parse()序列化了字节,再通过JSON.stringify()反序列化输出,可以看到顺序不会被打乱,和数据库的一致。

那么我们就可以直接拿到这一串数据和数据库进行模糊查询匹配。

http://www.dinnco.com/news/67779.html

相关文章:

  • 昌乐做网站信息流优化师招聘
  • 什么网站可以做图赚钱吗网络营销外包
  • 网站如何接入支付宝重庆seo网站哪家好
  • 福州住房建设厅网站成都seo正规优化
  • 网站还没有做解析是什么意思网站seo方案
  • 龙岗地区做网站公司北京seo网站优化培训
  • 汽车金融网站怎么做怎么让关键词快速上首页
  • 怎么做自己的简历网站百度推广后台登录
  • 有了网站源码可以做网站吗如何对一个网站进行seo
  • 洛阳霞光做网站的公司深圳app推广平台
  • b2c平台网站建设排名优化哪家好
  • php网站开发最新需求品牌策划案
  • 集团网站百度客服电话人工服务热线电话
  • 网站开发者专业优化网站排名
  • 青岛做网站建设价格陕西网站推广公司
  • 网站建设会议信息流广告投放
  • 开一家做网站公司成本某企业网站的分析优化与推广
  • 做鞋用什么网站好seo外包
  • 安新建设局网站网站有哪些平台
  • 新手学做免费网站谷歌搜索引擎入口2022
  • 深圳建站公司 企网站学生个人网页设计作品
  • 有谁做网站海外广告投放公司
  • 超越时空网上书城网站建设方案网站手机优化
  • 网站后台管理系统html下载网络广告营销策略
  • 蓝奏云注册网站关键词推广优化外包
  • 重庆做营销网站阿里网站seo
  • 做任务 网站百度seo软件是做什么的
  • 怎样做网站快照百度竞价排名名词解释
  • 三合一网站一般多少钱咖啡的营销推广软文
  • 会员网站开发高佣金app软件推广平台