com.alibaba.fastjson.JSONException: default constructor not found. class ……
1.json工具类
package com.hyzn.fw.util; import java.util.List;
import java.util.Map; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializerFeature; /**
* @ClassName: JsonUtil
* @Description: TODO
* @author xbq
* @version 1.0
* @date 2017-2-13 上午11:45:25
*/
public class JsonUtil { /**
* @Title: jsonToList
* @Description: TODO json 转为 List
* @param json
* @param obj
* @return
* @return: List
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static List jsonToList(String json, Class clz){
return JSON.parseArray(json, clz);
} /**
* @Title: jsonToMap
* @Description: TODO json转Map
* @param json
* @param clz
* @return
* @return: Map
*/
@SuppressWarnings("rawtypes")
public static Map jsonToMap(String json) {
return JSON.parseObject(json,new TypeReference<Map<String,List>>(){});
} /**
* @Title: jsonToObject
* @Description: TODO json转实体
* @param json
* @param obj
* @return
* @return: Object
*/
public static Object jsonToObject(String json,Object obj){
return JSON.parseObject(json, obj.getClass());
} /**
* @Title: dealResponseJson
* @Description: TODO 实体 转为 Json
* @param obj
* @return
* @throws Exception
* @return: String
*
* QuoteFieldNames———-输出key时是否使用双引号,默认为true
* WriteMapNullValue——–是否输出值为null的字段,默认为false
* WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
* WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
* WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
* WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
*/
public static String ObjectToJson(Object obj) throws Exception {
return JSON.toJSONString(obj, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty,SerializerFeature.WriteDateUseDateFormat,SerializerFeature.WriteNullNumberAsZero);
}
}
2.实体类
package com.hyzn.fw.controller;
/**
* @ClassName: Student
* @Description: TODO
* @author xbq
* @version 1.0
* @date 2017-3-2 上午11:42:20
*/
public class Student { private int ID;
private String NAME;
private String ADDRESS; public Student(int iD, String nAME, String aDDRESS) {
super();
ID = iD;
NAME = nAME;
ADDRESS = aDDRESS;
} public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public String getNAME() {
return NAME;
}
public void setNAME(String nAME) {
NAME = nAME;
}
public String getADDRESS() {
return ADDRESS;
}
public void setADDRESS(String aDDRESS) {
ADDRESS = aDDRESS;
} @Override
public String toString() {
return "Student [ID=" + ID + ", NAME=" + NAME + ", ADDRESS=" + ADDRESS
+ "]";
}
}
3.测试类
package com.hyzn.fw.controller; import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry; import com.alibaba.fastjson.JSONObject;
import com.hyzn.fw.util.JsonUtil; /**
* @ClassName: Test
* @Description: TODO
* @author xbq
* @version 1.0
* @date 2017-3-2 上午11:08:14
*/
public class Test { public static void main(String[] args) { List<Student> list = new ArrayList<Student>();
Student s = new Student(1,"张三","广州");
list.add(s);
s = new Student(2,"李四","广州");
list.add(s);
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("TB_ROOM", JsonUtil.ObjectToJson(list));
jsonObject.put("TB_FLOOR", JsonUtil.ObjectToJson(list));
} catch (Exception e1) {
e1.printStackTrace();
}
String json = jsonObject.toJSONString();
System.out.println(json); JSONObject jsonobj = JSONObject.parseObject(json);
for(Entry<String, Object> jsonData : jsonobj.entrySet()){
System.out.println("jsonData.getValue() ==" + jsonData.getValue());
System.out.println("jsonData.getKey() ==" + jsonData.getKey());
List<Student> lists = JsonUtil.jsonToList(jsonData.getValue().toString(), Student.class);
System.out.println(lists);
}
}
}
运行测试类的时候 ,出现 异常,如下:
Exception in thread "main" com.alibaba.fastjson.JSONException: default constructor not found. class com.hyzn.fw.controller.Student
at com.alibaba.fastjson.util.DeserializeBeanInfo.computeSetters(DeserializeBeanInfo.java:150)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.<init>(JavaBeanDeserializer.java:43)
at com.alibaba.fastjson.parser.ParserConfig.createJavaBeanDeserializer(ParserConfig.java:332)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:323)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:256)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:542)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:521)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:516)
at com.alibaba.fastjson.JSON.parseArray(JSON.java:336)
at com.hyzn.fw.util.JsonUtil.jsonToList(JsonUtil.java:29)
at com.hyzn.fw.controller.Test.main(Test.java:39)
异常出现原因是 因为 实体类中没有空的构造方法,加上 空的构造方法,问题解决
com.alibaba.fastjson.JSONException: default constructor not found. class ……的更多相关文章
- JSON parse error: default constructor not found. class java.time.YearMonth; nested exception is com.alibaba.fastjson.JSONException: default constructor not found. class java.time.YearMonth
java8新出的YearMonth可以方便的用来表示某个月.我的项目中使用springmvc来接收YearMonth类型的数据时发现 x-www-from-urlencoded 格式的数据可以使用&q ...
- redis通过json方案存取对象com.alibaba.fastjson.JSONException: syntax error, expect
问题描述: redis基于json方案存取对象时报错:com.alibaba.fastjson.JSONException: syntax error, expect com.alibaba.fast ...
- 做文件上传下载时报这个错com.alibaba.fastjson.JSONException: illegal identifier : \
::-exec-] DEBUG c.i.e.m.I.insertDataEmebeding - <== Updates: ::-exec-] ERROR c.i.e.c.CaseArchiveC ...
- com.alibaba.fastjson.JSONException: For input string: "8200-12-31"
https://www.cnblogs.com/mengjinluohua/p/5544987.html https://samebug.io/exceptions/458113/com.alibab ...
- com.alibaba.fastjson.JSONException: exepct '[', but error, pos 1, json : %255B%257B%2522list%2522%253A%255B%257B%2522itemId%2522%253A1369331%252C%2522num%2522%253A2%257D%255D%257D%255
com.alibaba.fastjson.JSONException: exepct '[', but error, pos 1, json : %255B%257B%2522list%2522%25 ...
- fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string: "13:02:19"
问题:time类型数据插入不进mysql数据库:调试的时候报如下错误: Caused by: java.lang.NumberFormatException: For input string: &q ...
- Caused by: com.alibaba.fastjson.JSONException: syntax error, expect {, actual [, pos 0, fastjson-version 1.2
环境: vue.js 问题: 当添加评论时 重新查询数据刷新数据控制台异常Caused by: com.alibaba.fastjson.JSONException: syntax error, ex ...
- com.aliyun.openservices.shade.com.alibaba.fastjson.JSONException: exepct '[', but {, pos 1, line 1, column 2
报错原因:你放的是一个非List的对象 却想取一个List对象出来 package test; import java.text.SimpleDateFormat; import java.util. ...
- 解决使用Redis时配置 fastjson反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support
1.问题描述 在使用redis时,配置自定义序列化redisTemplate为FastJsonRedisSerializer . 1 /** 2 * 自定义redis序列化器 3 */ 4 @Sup ...
随机推荐
- Gson json解析工具
json 解析工具 ,谷歌出品 对象转换字符串 HashMap<String,String> hashMap = new HashMap<String, String>(); ...
- python content list(1--4)
part 1 python language 1. environment building and config 2. variable and data type 3. programming b ...
- 【 Linux 】单台服务器上并发TCP连接数
单台服务器上并发TCP连接数 问题:一台服务器到底能够支持多少TCP并发连接呢? 1. 文件描述符限制: 对于服务器来说,每一个TCP连接都要占用一个文件描述符,一旦文件描述符使用完,新的 ...
- 一站式学习Wireshark(二):应用Wireshark观察基本网络协议
TCP: TCP/IP通过三次握手建立一个连接.这一过程中的三种报文是:SYN,SYN/ACK,ACK. 第一步是找到PC发送到网络服务器的第一个SYN报文,这标识了TCP三次握手的开始. 如果你找不 ...
- JEECG常见问题大全征集
大家还有什么问题.请跟帖,谢谢支持. . JEECG常见问题大全征集 1. jeecg没有数据库脚本问题 jeecg不须要数据库脚本,在数据库创建好数据库.项目配置好数据源链接.会自己主动建表. ...
- 打开Win7休眠模式和离开模式的方法
打开Win7休眠模式和离开模式的方法 ●启动休眠模式 从开始菜单中找到“附件→命令提示符”,手工输入如下命令:powercfg -a,从这里可以清楚的看到,计算机是支持休眠的,显示“尚未启用休眠&qu ...
- spring boot 拦截器之WebMvcConfigurerAdapter
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 上一篇我们讲到了拦截器,我们也简单的讲解到了WebMvcConfigurerAdapter这个拦截器.本篇我们来对Web ...
- fancybox 使用方法
项目中需要做一个相册功能.选择的是fancybox,大概记录一下使用方法: 1.引用fancybox所需要的文件,你可以下载至本地或者引用CDN. fancybox最新版本下载地址:http://fa ...
- R工具包
直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和爬一些R的资料,看着看着就入迷了,这就是个大宝库了,以前怎么没发现,看来还是太狭隘了.直到前几天我看到这个 ...
- MySQL中乐观锁和悲观锁 原理、区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据 ...