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

东莞凤岗网站建设软文发布平台

东莞凤岗网站建设,软文发布平台,wordpress自定义下载,凡高网站建设前言 今天在开发的时候接到了一个这个样的需求,说是要将一个json文件读取下来之后,保存到数据库中,还有各种关联表之间的关系,不管是JsonObject JsonArray JsongString Json对象转实体类 等 统统拿下,全部解析。 依…

前言

        今天在开发的时候接到了一个这个样的需求,说是要将一个json文件读取下来之后,保存到数据库中,还有各种关联表之间的关系,不管是JsonObject  JsonArray  JsongString  Json对象转实体类 等 统统拿下,全部解析。

依赖

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.11</version> <!-- 请使用最新版本 -->
</dependency>

复杂的JSON

{"classifys": ["社会"],"createTime": 1736794990493,"directions": ["东海"],"documentType": 0,"entities": [{"frequency": 8,"type": 1020,"typeName": "国家","word": "2dq"},{"frequency": 4,"type": 1003,"typeName": "机构","word": "dq象厅"},{"frequency": 2,"type": 1026,"typeName": "eqw语","word": "警告"},{"frequency": 2,"type": 1026,"typeName": "ewq术语","word": "太平洋"},{"frequency": 1,"type": 1003,"typeName": "机构","word": "切尔诺eqw核电站"},{"frequency": 1,"type": 1026,"typeName": "eqw术语","word": "活动"},{"frequency": 1,"type": 2001,"typeName": "时间","word": "2011年3月"},{"frequency": 1,"type": 2001,"typeName": "时间","word": "2011年"},{"frequency": 1,"type": 1002,"typeName": "地点","word": "南开"},{"frequency": 1,"type": 1026,"typeName": "军13语","word": "一种"},{"frequency": 1,"type": 1026,"typeName": "21术语","word": "美国地质调查局"},{"frequency": 1,"type": 1026,"typeName": "3语","word": "下午"},{"frequency": 1,"type": 2001,"typeName": "时间","word": "21:19"},{"frequency": 1,"type": 2001,"typeName": "时间","word": "今天"},{"frequency": 1,"type": 1002,"typeName": "地点","word": "东京"},{"frequency": 1,"type": 1021,"typeName": "重点目标","word": "港口"}],"entity": ["切尔诺贝利核电站","活动","2011年3月","2011年","南开",],"id": "6785631c2c220462abd2a96a","imgList": ["67aebe005263920a9cfd58ac.jpg"],"keywords": ["造成x损失","人xx","区",],"lables": ["xx","地球",],"publishTime": 1736697600000,"synopsis": "周一晚些时候,","territorys": ["16"],"traceSource": [{"docId": "6785631c2c220462abd2a96a","eventDate": 1736697600000,"eventDateStr": "2025.01.13","eventInfo": "气象厅警告称"},{"docId": "6785631c2c220462abd2a96a","eventDate": 1736697600000,"eventDateStr": "2025.01.13","eventInfo": "日本"},{"docId": "6785631c2c220462abd2a96a","eventDate": 1736697600000,"eventDateStr": "2025.01.13","eventInfo": "西南部发生6.8级地震"},{"docId": "6785631c2c220462abd2a96a","eventDate": 1736697600000,"eventDateStr": "2025.01.13","eventInfo": "西南部引发两次小海啸"},{"docId": "6785631c2c220462abd2a96a","eventDate": 1704038400000,"eventDateStr": "2024","eventInfo": "发生7.5级地震"},{"docId": "6785631c2c220462abd2a96a","eventDate": 1646064000000,"eventDateStr": "2022.03","eventInfo": "东部大片地区"},{"docId": "6785631c2c220462abd2a96a","eventDate": 1646064000000,"eventDateStr": "2022.03","eventInfo": "福岛地震"},{"docId": "6785631c2c220462abd2a96a","eventDate": 1298908800000,"eventDateStr": "2011.03","eventInfo": "东北部大地震"},{"docId": "6785631c2c220462abd2a96a","eventDate": 1298908800000,"eventDateStr": "2011.03","eventInfo": "日啸"},{"docId": "6785631c2c220462abd2a96a","eventDate": -1483257600000,"eventDateStr": "1923","eventInfo": "摧毁一场大地震"}],}

可以看到,上述JSON中 什么都包含了,json对象  json数组  json集合 等等  ,那么如何将复杂的json字符串解析成自己想要的呢? 接着往再看

方式一:基于类实现

创建类

其实我们只需要创建基于上述json的类即可 下面是我简单的创建了一个类然后该类里面的字段和json的key对应.

注意:

1.只有和json中的字段对应才会被解析。

基础数据类

package com.ruoyi.system.domain.pojo;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;
import java.util.List;/*** 互联网采集数据(NetworkData)实体类** @author makejava* @since 2025-01-21 17:16:04*/
@ApiModel(value = "互联网采集数据(NetworkData)实体类")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "network_data")
public class NetworkData implements Serializable {private static final long serialVersionUID = 786479205391408738L;@TableId(value = "network_id", type = IdType.AUTO)@ApiModelProperty(value = "network_id")private Integer networkId;private String  createTime; private String entity;private String originalTitle;private String classifys;private List<Entities> entities;}

Entities类

 
package com.ruoyi.system.domain.pojo;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;
import java.util.List;@Data
@Builder
@AllArgsConstructor
@NoArgsConstructorpublic class Entities implements Serializable {private String  frequency; private String type;private String typeName;private String word;}

 解析

通过上述我们创建好了类型之后,可以使用hutool中的JSONUtil.toBean(String s,T.class)方法解析jsonString

 如:在我真实开发中使用到

private void jsonTOSql2(String s, String fileName, String dateString) {/*
* 使用hutool的toBean转换
*/MainTable mainTable = JSONUtil.toBean(s, MainTable.class);
//             insertSql(mainTable);NetworkData networkData = new NetworkData();AutonomouMessage autonomouMessage = new AutonomouMessage();//类型autonomouMessage.setFileType(1);//原文地址autonomouMessage.setOriginalUrl(mainTable.getUrl());//原文标题autonomouMessage.setMessageTitle(mainTable.getSourceTitle());}

 方式二:通过map实现

       下述是一个简单的实例

示例一

private void jsonTOMap() {String mixedJson = "{\"name\":\"混合类型\",\"scores\":[85,90,95],\"info\":{\"married\":true}}";Map<String, Object> map = JSONUtil.parseObj(mixedJson).toBean(Map.class);// 访问数组
List<Integer> scores = (List<Integer>)map.get("scores");
System.out.println("分数: " + scores);  // [85, 90, 95]// 访问布尔值
Boolean married = (Boolean)((Map)map.get("info")).get("married");
System.out.println("已婚: " + married);  // true}

示例二

private void jsonTOMap2() {String jsonArrayStr = "[{\"name\":\"产品A\",\"price\":99.0},{\"name\":\"产品B\",\"price\":199.0}]";// 转换为List<Map>
List<Map<String, Object>> list = JSONUtil.parseArray(jsonArrayStr).toList(Map.class);// 遍历
for (Map<String, Object> item : list) {System.out.println("产品: " + item.get("name") + ", 价格: " + item.get("price"));
}}

 结尾

话不多少,只讲实操案例,如果想要更多json之间的转换可以去Hutool网站去查看!

http://www.dtcms.com/wzjs/527934.html

相关文章:

  • 关于加快政府网站建设的报告电工培训技术学校
  • 威客做的比较好的网站有哪些友情链接交易网站源码
  • 域名续费价格北京seo顾问推推蛙
  • 微信网站怎么做的好名字广州全网推广
  • 网站内容做淘宝店铺链接影响排名吗信息流优化师招聘
  • django做的购物网站头条热点新闻
  • wordpress多域名绑定厦门最快seo
  • 科技资讯网站有哪些网站推广该怎么做
  • 中小企业网站建设案例百度竞价sem入门教程
  • 网站制作+网站建设seo优化推广公司
  • dede5.7模板 新闻文章网站源码3分钟搞定网站seo优化外链建设
  • 凡科建站网站怎样做软件下载网上营销方式和方法
  • 网站标题logo怎么做微信推广平台收费标准
  • 现在进入深圳需要什么条件靠谱seo外包定制
  • 域名网址南宁网络优化seo费用
  • 邯郸北京网站建设搜索推广和信息流推广的区别
  • 公司网站如何宣传推广软文广告
  • 中国建设银行有哪些招聘网站百度热词
  • 网站建设上海公司企业如何注册自己的网站
  • 澳门手机优化专家
  • 宜昌恒大帝景二手房云南seo网络优化师
  • 秦皇岛网站开发培训学校
  • 网站维护网站建设网络推广需要多少钱
  • 项城市建设方案公示在哪个网站可以推广网站
  • 国内电商平台网站制作排行榜谷歌搜索入口手机版
  • wordpress博客搬家主页404星沙网站优化seo
  • 网站建设如何包含数据库培训课程安排
  • 青岛网站制作永诚青岛关键词搜索排名
  • 2015做微网站多少钱北京搜索引擎推广公司
  • 上海注册子公司流程和费用标准seo上海公司