fastjson

最强常用开发库- JSON库详解

ぃ、小莉子 提交于 2020-03-03 09:32:20
本文为作者原创,转载请注明出处: https://www.cnblogs.com/pengdai/p/12185594.html 内容目录 JSON简介 JSON是什么 结构与类型 JSON优秀资源 JSON在线解析工具 JSON类库 性能测试对比 FastJson Fastjson 简介 Fastjson 特性 下载和使用 序列化一个对象成JSON字符串 反序列化一个JSON字符串成Java对象 对于日期的处理 Bean和数组转换 设置字段名 设置是否不序列化某字段 设置字段顺序 自定义序列化和反序列化 FastJson漏洞问题 JackSon JackSon简介 Jackson组件 Jackson的使用 序列化一个对象成JSON字符串 反序列化一个JSON字符串成Java对象 常用注解 GSON Gson简介 Gson的目标 Gson的使用 序列化 反序列化 自定义序列化和反序列化机制 参考文章 更多内容 最强常用开发库总结 - JSON库详解 JSON应用非常广泛,对于Java常用的JSON库要完全掌握。@pdai JSON简介 JSON是什么 JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是

fastjson转换json格式数据为List<HashMap>转换异常问题

给你一囗甜甜゛ 提交于 2020-03-02 08:19:09
在做crm任务分发系统中的【批量修改任务工单的选项】问题时, 需要对接口数据进行处理,接口数据举例如下, [ { "title": "使用情况", "options": [ { "name": "好", "value": 1 }, { "name": "不好", "value": 2 }, { "name": "还行", "value": 3 } ] }, { "title": "优化情况", "options": [ { "name": "好", "value": 1 }, { "name": "不好", "value": 2 }, { "name": "还行", "value": 3 } ] } ] 注意, options 里是个array或者list 。 虽然结构复杂,但是也算清晰。一开始想用JSONArray. parseArray (jsondata , HashMap . class ) ; 转化为以一个List<HashMap>,然后再取得每个HashMap,每个HashMap中又是一个List<HashMap>,然后再遍历取得HashMap。 但是就在第二次遍历list的时候出现了异常, for (HashMap configData : configDataList ){ //这行出错 int value = (Integer)configData.get(

精通Spring Boot——第十二篇:分页查询功能的实现

北城余情 提交于 2020-03-01 22:43:20
本文将介绍如何实现分页查询功能,推荐使用github的pagehelper插件实现(事实上大家基本都是这么干的),但本文的实现方式和大多数不同,废话少说,现在就带着大家看看区别在哪里。 先看pom.xml依赖:相当简单的mybatis-spring依赖+mysql+pagehelper+fastjson <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.44</version> </dependency> <dependency> <groupId>mysql</groupId>

Java枚举

人走茶凉 提交于 2020-02-29 11:22:22
目的 1、枚举值转换成完全的json; 2、对象中的枚举成员完全转换成json; 3、枚举类的全部值转换成json; 枚举定义 public enum SongsEnum { SAFE_AND_SOUND(1," Taylor Swift "," Safe&Sound "," 2011-12-26 ") ,SHAKE_IT_OFF(2," Taylor Swift "," Shake It Off "," 2014-08-19 ") ,STYLE(3," Taylor Swift "," Style "," 2015-02-09 ") ,SOUND_OF_SILENCE(4," Simon & Garfunkel "," The Sound Of Silence "," 1966-01-17 ") ,BETTER_MAN(5," Little Big Town "," Better Man "," 2016-10-20 ") ,YESTERDAY_ONCE_MORE(6," Carpenters "," Yesterday Once More "," 1973-05-16 ") ; public final int index; public final String singer; public final String name; public final String

将XML文件内容转换成json格式

て烟熏妆下的殇ゞ 提交于 2020-02-28 14:11:28
package com.lieni.ruyu.api.xmlTool; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class XmlToJson { /** * 将xml转换为JSON对象 * * @param xml xml字符串 * @return * @throws Exception */ public static JSONObject xmltoJson(String xml) throws Exception { JSONObject jsonObject = new JSONObject();

Springboot使用alibaba的fastJson,@JSONField不起作用的问题

余生长醉 提交于 2020-02-28 13:52:07
在Springboot中默认的JSON解析框架是jackson 今天引入alibaba的fastjson,使用@JSONField(serialize=false),让@RestController转换数据给前端的时候不序列化莫些字段,发现@JSONField根本不起作用 在网上查阅了一番,发现Springboot使用fastjson需要替换默认的json转换器的 具体解决方法有两种: 本文借鉴地址:https://blog.csdn.net/qq_28929589/article/details/79245774 一、(1)启动类继承extends WebMvcConfigurerAdapter (2)覆盖方法configureMessageConverters 二、(1)在App.java启动类中,注入Bean : HttpMessageConverters 第一种方式: 启动类继承WebMvcConfigurerAdapter,然后对configureMessageConverters方法进行重写 @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters);

Springboot整合FastJson

◇◆丶佛笑我妖孽 提交于 2020-02-28 13:51:33
fastJson是阿里巴巴旗下的一个开源项目之一,顾名思义它专门用来做快速操作Json的序列化与反序列化的组件。 它是目前json解析最快的开源组件没有之一! 我们进行Springboot整合FastJson 一:添加依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.33</version> </dependency> 添加依赖我们编写自己的类来继承 @Configuration public class FastJsonConfiguration extends WebMvcConfigurerAdapter { @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters); FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig =

数据爬取一例

≡放荡痞女 提交于 2020-02-27 04:17:28
最近赋闲在家, 就想找点事情做,就想着爬爬小视频什么的,于是就有了下面这个程序, 没什么难度, 就是给大家分享下思路 下面就用 https:// www。avtb6677 。 com来举例: 1, 找一个工具来下载相关页面代码, 我用的是teleport来只下载页面, 不下载其他的, 这大概等了1个小时就好了, 这工具挺好的,比写代码来爬全站来得快. 2, 这一个小时期间, 我写完了以下代码, 大概只用了20分钟吧. package aa; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import com.alibaba.fastjson.JSON; public class AvTaoBao6677 { public static String list = "c:/aaa.list"; //下载页面的目录 static String

利用反射和注解,拷贝类型相同,属性名不同的对象

心不动则不痛 提交于 2020-02-27 03:12:03
1、前言 最近开发遇到一个问题,两个对象进行属性值拷贝。理论上来说可以直接借助org.springframework.beans.BeanUtils.copyProperties(Object source, Object target)来进行拷贝,奈何两个对象属性名不同,懵逼脸。 2、问题引入 待拷贝类 /** * @author : weenie * @version v1.0 * @Description: 源User */ public class OriginUser { /**id*/ private Long originId; /**名称*/ private String originName; /**密码*/ private String password; /**出生日期*/ private Date originBirthDay; /**是否健康*/ private Boolean originHealth; /**getter/setter省略*/ } 目标类 /** * @author : weenie * @version v1.0 * @Description: 目标User */ public class TargetUser { /**id*/ private Long targetId; /**名称*/ private String

dubbo协议及序列化

帅比萌擦擦* 提交于 2020-02-27 00:31:05
Dubbo是 Alibaba 开源的分布式服务框架远程调用框架,在网络间传输数据,就需要通信协议和序列化。 一、通信协议 通信协议:Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,但是Dubbo官网是推荐我们使用Dubbo协议的,默认也是用的dubbo协议。 dubbo协议 缺省协议,使用基于mina1.1.7+hessian3.2.1的tbremoting交互。 连接个数:单连接 连接方式:长连接 传输协议:TCP 传输方式:NIO异步传输 序列化:Hessian二进制序列化 适用范围:传入传出参数数据包较小(建议小于100K),消费者比提供者个数多,单一消费者无法压满提供者,尽量不要用dubbo协议传输大文件或超大字符串。 适用场景:常规远程服务方法调用 总结: 1、dubbo默认采用dubbo协议,dubbo协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况 2、他不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。 配置如下: <dubbo:protocol name="dubbo" port="20880" /> <dubbo:protocol name=“dubbo” port=“9090” server=“netty”