fastjson

Java操作JSON数据(3)--fastjson操作JSON数据

大兔子大兔子 提交于 2019-12-09 15:35:05
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。本介绍下fastjson的基本使用方法,包括序列化和反序列化;文中所使用到的软件版本:Java 1.8.0_191、Gson 1.2.62。 1、引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> 2、序列化 public static String serialize() { MyBean bean = new MyBean(); bean.setS("测试字符串"); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.HOUR_OF_DAY, -1); bean.setD(calendar.getTime()); List<MyBean> list = new ArrayList<MyBean>(); list.add(bean); Map<String, List<MyBean>> map = new HashMap<String

jmeter beanShell fastJson 解析

你说的曾经没有我的故事 提交于 2019-12-09 13:55:31
1.下载fastJson 2.将jar文件放入到apache-jmeter-XXX\lib\ext目录下 3.导入包import com.alibaba.fastjson.*; 4.具体解析方式详解 import com.alibaba.fastjson.*; try{ String response = prev.getResponseDataAsString(); // 获取Response,为字符串,需要转为json对象 JSONObject responseObj = JSON.parseObject(response); // 整个Response转为JSON对象 JSONObject rs = responseObj.get("XXX");//解析中的值为字典的用此方法 String code = responseObj.get("XXX").toString(); //解析中的值为字符串的用此方法 JSONArray prizes = responseObj.get("XXX").getJSONArray("XXX");//解析中的值为数组的用此方法 for(int i=1; i<=prizes.size(); i++){ xxx } if(!code.equals("xxx")) { FailureMessage = "响应的code不是:xxx,而是:" +

java实现发送手机验证码功能

↘锁芯ラ 提交于 2019-12-09 09:00:24
1. 进入秒嘀科技( http://www.miaodiyun.com/ ),注册一个账号 2. 注册好之后,点击 用户中心 -> 账户管理,就会进入如下界面 (顺便提一下,新注册的用户,平台会免费赠送你10元,足够大家学习和使用了,所以不用担心需要充钱) 你需要做的就是获取你自己的 ACCOUNT SID 和 AUTH TOKEN 3. 点击 用户中心 -> 认证,进行企业认证,企业的 资质证件 就是企业的 营业执照 ,网上百度一张 带有红色的公章 就行,公司电话填写自己的就行,最后点击提交 4. 需要在秒嘀上新建一个发送手机验证码的模板,点击 配置管理 -> 验证码短信模板,就会进入如下界面 5. 点击“新建模板”按钮, 填写好模板名称、短信签名 和 短信内容(短信内容可以选择 验证码通知短信模板 或者 自己编写短信内容),点击“提交审核”按钮即可,界面如下 6. 然后等待 短信验证码模板 审核通过即可,点击 配置管理 -> 验证码短信模板,查看 短信验证码 是否审核通过 7. 接下来就是代码了,把我圈住的地方改成自己的就行,其他的不用动, tamp值 一定要与自己创建短信模板的短信内容保持一致 8. java短信发送验证码 导入阿里巴巴fastjson.jar包: 方式一:下载fastjson.jar包导入工程就行 链接: https://pan.baidu.com/s

利用fastJson包实现json与对象互转

匆匆过客 提交于 2019-12-06 16:53:02
@Test public void testGetAllUsers(){ PageInfo pageInfo = userService.getAllUsers(); //对象转json并美化 String str = JSONObject.toJSONString(pageInfo,true); System.out.println("jsonStr:" + str); //json转对象 System.out.println("PageInfo:" + JSONObject.parseObject(str,PageInfo.class)); 输出: jsonStr:{ "endRow":2, "hasNextPage":false, "hasPreviousPage":false, "isFirstPage":true, "isLastPage":true, "list":[ { "createdBy":"SYSTEM", "createdDate":1575545371000, "password":"123", "updatedBy":"SYSTEM", "updatedDate":1575545371000, "userId":1, "userName":"wcc" }, { "createdBy":"SYSTEM", "createdDate"

SpringBoot 配置FastJson

非 Y 不嫁゛ 提交于 2019-12-06 10:09:03
SpringBoot 配置FastJson , Google百度一下一大堆 , 我就贴一下我的方式: extends org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter Override configureMessageConverters public class FastjsonConfig extends WebMvcConfigurerAdapter { @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters); //fastjson MessageConverter FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); //fastjson config FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures

Gson/Jackson/FastJson工具类

梦想与她 提交于 2019-12-05 22:37:12
import java.util.ArrayList; import java.util.List; import java.util.Map; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.google.gson.reflect.TypeToken; public class GsonUtil { //不用创建对象,直接使用Gson.就可以调用方法 private static Gson gson = null; //判断gson对象是否存在了,不存在则创建对象 static { if (gson == null) { //gson = new Gson(); //当使用GsonBuilder方式时属性为空的时候输出来的json字符串是有键值key的,显示形式是"key":null,而直接new出来的就没有"key":null的 gson= new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();

Java fastjson JSON和String互相转换

烈酒焚心 提交于 2019-12-05 15:19:12
1.fastjson List转JSONArray List<T> list = new ArrayList<T>(); JSONArray array= JSONArray.parseArray(JSON.toJSONString(list)); 2.fastjson JSONArray转List JSONArray array = new JSONArray(); List<EventColAttr> list = JSONObject.parseArray(array.toJSONString(), EventColAttr.class); 3.fastjson 字符串转List String str = ""; List<T> list = JSONObject.parseArray(str,T.class); 来源: https://www.cnblogs.com/fubinhnust/p/11930585.html

关于Jackson默认丢失Bigdecimal精度问题分析

可紊 提交于 2019-12-05 10:51:15
问题描述 最近在使用一个内部的RPC框架时,发现如果使用Object类型,实际类型为BigDecimal的时候,作为传输对象的时候,会出现丢失精度的问题;比如在序列化前为金额1.00,反序列化之后为1.0,本身值可能没有影响,但是在有些强依赖金额的地方,会出现问题; 问题分析 查看源码发现RPC框架默认使用的序列化框架为Jackson,那简单,看一下本地是否可以重现问题; 1.准备数据传输bean public class Bean1 { private String p1; private BigDecimal p2; ...省略get/set... } public class Bean2 { private String p1; private Object p2; ...省略get/set... } 为了更好的看出问题,分别准备了2个bean; 2.准备测试类 public class JKTest { public static void main(String[] args) throws IOException { ObjectMapper mapper = new ObjectMapper(); Bean1 bean1 = new Bean1("haha1", new BigDecimal("1.00")); Bean2 bean2 = new Bean2(

Fastjson序列化导致BeetlSQL无限循环查询的解决方案

两盒软妹~` 提交于 2019-12-05 08:12:56
前言 BeetlSQL 最近的更新新增了 @OrmQuery 注解,作用是可以让内置生成的SQL自动去延迟级联加载对象,此功能的增加让 BeetlSQL 在ORM功能方面完全有了抗衡Hibernate的资本。这么新鲜刺激的功能,不尝鲜一下简直对不起正使用 BeetlSQL 的自己,更是对不起 BeetlSQL 的作者 @闲·大赋 呢! 问题与场景 假定有城市City和省份Province两个Pojo,分别都注解上了 @OrmQuery ,本意是想当查询城市City时能延迟级联查询对应的省份Province,或查询省份Province时可以延迟级联查询该省份下面的全部City列表,理想很丰满,现实却很骨感。我们直接使用Beetl或者JSP等模板引擎直接在页面上输出以及级联加载时没有任何问题。 凡事都有个但是~~~当我们使用Fastjson序列化某一个查询结果时可怕的事情发生了,互相 @OrmQuery 导致Fastjson序列化时会一直查询下去,类似于死循环。 举个栗子,具体表现为:当查询深圳市,因为有 @OrmQuery 级联关系,Fastjson自动序列化到tails( tails为Pojo继承了TailBean后的一个属性,用于 BeetlSQL 内部级联加载时存放代理对象等使用 )的province时 BeetlSQL 又会去数据库查询广东省

描述下fastJSON,jackson等等的技术

扶醉桌前 提交于 2019-12-05 06:57:16
①Jackson:依赖的jar包较少,简单易用性能高,更新速度也比较快,但是对于复杂类型的json转换bean会出 现问题,一些集合Map,List的转换出现问题,对于复杂类型的bean转换Json,转换的json格式不是标准的 Json格式; ②FastJson:无依赖,不需要例外额外的jar,能够直接跑在JDK上,在复杂类型的Bean转换Json上会出现一些 问题,可能会出现引用的类型,导致Json转换出错,需要制定引用,采用独创的算法,将parse的速度提升到极 致,超过所有json库。 来源: https://www.cnblogs.com/lingboweifu/p/11912149.html