fastjson

利用FastJSON 把list和map转换成Json

旧巷老猫 提交于 2020-01-01 12:25:03
本文转载自: https://www.cnblogs.com/chaoslane/p/4907238.html 作者:chaoslane 转载请注明该声明。 JSON 是个好东西,就是第三方的库太多了有木有。今天在把List转化成JSON的时候,在网上找到的方法,就用了各种第三方的库,把自己搞晕了,其实是很简单。所以做事情的时候一定要思路清晰,导入的包也是很重要的,别上来就看代码,把自己整蒙圈了。。。 之前有用过Jackson、谷歌的Gson ,这次用的是阿里的 FastJSON ,号称是最快的JSON转换。 项目用的是servlet // 确保JSP和servlet的编码方式一致 resp.setContentType("text/html;charset=GBK" ); List <String> jymdList = new ArrayList<String> (); PrintWriter out = null ; try { // 从数据库中取得List jymdList = efileViewUiService.getLymd(); // 简单粗暴,对于Map这句也适用 String json = JSON.toJSONString(jymdList); // 取得流向JSP传递数据 PrintWriter out = resp.getWriter(); out

使用@ResponseBody返回Json格式数据时的配置

微笑、不失礼 提交于 2019-12-30 15:40:24
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近搭建环境时,想使用@ResponseBody注解返回JSONObject数据,但是提示Http 500错误: 上网查了一下,才发现,@ResponseBody不是拿来就能用的,还需要进行下配置,配置对应的conver。 找了好一会,终于搞定,但是感觉好多朋友的博文基本都是转载,一个错就导致了个个错,所以决定自己整理一份 下面先说Jackson的方式 添加jar包支持 我的项目是Maven项目,所以pom.xml文件中添加依赖如下: <!-- Jackson依赖 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core<

Fastjson、Jackson与SpringMVC整合的MessageConverter配置

拈花ヽ惹草 提交于 2019-12-30 15:30:10
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.Jackson maven依赖 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.7.1</version> </dependency> springmvc-servlet.xml中配置 <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8"/> </bean> </mvc:message-converters> </mvc:annotation-driven> 2.FastJson

Spring Boot + JSON 处理

大城市里の小女人 提交于 2019-12-30 00:57:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Spring Boot 之使用 Json 详解 1. 前台不显示属性的空值:NULL 类上增加注解:@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) 2. 前后台显示属性名称不一致 属性增加注解: @JsonProperty("myName") 3. 注解:不显示属性 com.fasterxml.jackson.annotation.JsonIgnore OR @JSONField(serialize = false)>来自com.alibaba.fastjson.annotation 4. pom.xml增加 <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> </dependency> 来源: oschina 链接: https://my.oschina.net/u/248712/blog/3055599

使用Servlet处理Ajax请求

放肆的年华 提交于 2019-12-28 14:40:02
AJAX用于异步更新页面的局部内容。 ajax常用的请求数据类型 text 纯文本字符串 json json数据 使用ajax获取text示例 此种方式常用于前端向后台查询实体的一个属性(字段),比如查询总分。 前端页面 <body> <form> 学号:<input type="text" id="no"><br /> 姓名:<input type="text" id="name"><br /> <button type="button" id="btn">查询成绩</button> </form> <p id="score"></p> <script src="js/jquery-3.4.1.min.js"></script> <script> $("#btn").click(function () { $.ajax({ url:"servlet/HandlerServlet", //请求地址 type:"get", //请求方法 data:{"no":$("#no").val(),"name":$("#name").val()}, //要发送的数据,相当于表单提交的数据,json形式。 dataType:"text", //期待返回的数据类型,也可以理解为请求的数据类型 error:function () { //发生错误时的处理 }, success:function

fastjson与多级泛型(一)

霸气de小男生 提交于 2019-12-28 14:38:55
1.问题背景 知道方法的Method和方法的响应字符串,将字符串转换为returnType。Method可能包含多级泛型 2.核心内容 method.getGenericReturnType 获取方法返回类型泛型类 ParameterizedTypeImpl 记录泛型嵌套关系 3.基本思路 先利用getGenericReturnType 获取方法返回类型泛型类,然后对返回的Type做判断,分两部分进行处理。核心代码如下: public static Object transfer1(String req,String className,String methodName ) throws Exception{ Class clazz=Class.forName(className); Method method=clazz.getDeclaredMethod(methodName); Type type=method.getGenericReturnType(); if(type instanceof ParameterizedType){ ParameterizedType type1=(ParameterizedType) type; ParameterizedTypeImpl beforeType = new ParameterizedTypeImpl(type1

fastjson JSONObject 使属性有序

落花浮王杯 提交于 2019-12-27 09:37:04
//JSONObject默认属性无序 JSONObject jsonObject = new JSONObject(); // 设置有序,绝对按put顺序组织toJSONString() JSONObject jsonObject = new JSONObject(true); // 有序的jsonObjectMap jsonObjectMap = JSON.parseObject(jsonString, LinkedHashMap.class, Feature.OrderedField); // 有序的jsonObjectKeys jsonObjectKeys = gisOperationalItemsMap.keySet(); 来源: CSDN 作者: 风铃峰顶 链接: https://blog.csdn.net/haoranhaoshi/article/details/103650941

SpringBoot中用Fastjson替换默认的Jackson

折月煮酒 提交于 2019-12-26 20:36:14
一:前言   经过测试,Jackson有很多不合人意的地方,因此建议用Fastjson来替换; 二:Jackson的坑 先定义实体类: @Data @AllArgsConstructor @NoArgsConstructor @Accessors(chain = true) public class MockModel { private String fUid; private String fName; private String fGender; } 坑1:这里我是用lombok的注解来自动生成构造方法和getter、setter;经过测试SpringBoot中默认的Jackson是不支持将JSON字符串序列化为@Data注解的MockModel对象的(没有手动定义getter和setter); 测试方式@RequestBody MockModel body;然后POST请求体参数就是对应的JSON字符串(完全对应),但是jackson却无法转换;(自定义getter和setter方法jackson可以反序列化为MockModel对象,而Fastjson是两种都可以) 坑2:mapping方法返回MockModel对象,jackson是可以将MockModel对象转换为JSON字符串,但是属性名却转换的很坑爹,原本我需要的是{"fUid":xxx...

使用Fastjson解析List对象时出现:{"$ref":"$.data[0].task.OBJECTS[0]"}的问题原因及解决方法

走远了吗. 提交于 2019-12-26 01:14:31
首先,说一下出现问题的原因:后台传过去的json数据用了阿里巴巴的fastjson转换,但是有个问题就是:解析list中引用的数据时,jvm避免数据溢出,会自动处理为“循环引用”,因此,也就出现了问题的根源{"$ref":"$.data[0].task.OBJECTS[0]"},数据以引用的方式传给前台,前台却无法解析到那段引用的数据。 循环引用:当一个对象包含另一个对象时,fastjson就会把该对象解析成引用。 然后,知道了问题的根源,就知道往什么方向解决问题了--禁止循环引用。 解决方案如下所示 : 注:map中存放了你需要传到前台的数据对象:data!并且data中的对象数据存在循环引用。 网上的解决方案: JSON.toJSONString(list,SerializerFeature.DisableCircularReferenceDetect) 注:不管你是引用JSON,还是JSONObject,主要是看你想传的对象是啥类型,然后转换成JSON / JSONObject 下面介绍一些引用的描述: "$ref":".." 上一级 "$ref":"@" 当前对象,也就是自引用 "$ref":"$" 根对象 "$ref":"$.children.0" 基于路径的引用,相当于 root.getChildren().get(0)

FastJSON 简单使用

徘徊边缘 提交于 2019-12-24 10:50:09
FastJSON是一个Java语言编写的高性能,功能完善, 完全支持 http://json.org 的标准 的JSON库。多了不说了, 百度一下 一大把。 在此,简单的总结一下自己用过,测试过的方法。 如果使用Maven,在pom.xml文件加入以下依赖。 1 <dependency> 2 <groupId>com.alibaba</groupId> 3 <artifactId>fastjson</artifactId> 4 <version>1.1.23</version> 5 </dependency> 序列化 序列化就是指 把JavaBean对象转成JSON格式的字符串。 com.alibaba.fastjson.JSON提供了许多方法(多态)实现序列化。 1.基本的序列化 String objJson = JSON.toJSONString(Object object); 传入一个对象,将对象转成JSON字符串。 例1 :将Map转成JSON 1 Map<String, Object> map = new HashMap<String, Object>(); 2 map.put("key1", "One"); 3 map.put("key2", "Two"); 4 5 String mapJson = JSON.toJSONString(map); 输出结果: {