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 ...
随机推荐
- python 字符串 大小写转换 以及一系列字符串操作技巧
总结 capitalize() 首字母大写,其余全部小写 upper() 全转换成大写 lower() 全转换成小写 title() 标题首字大写,如"i love python" ...
- Debug文件夹是什么
debug是一个隐藏的对象,用于进行和调试相关的工作.是系统调试文件夹,用来存放系统运行过程中调试模块的日志文件,以便管理员根据这些日志文件来发现计算机所存在的问题.其中“UserMode”文件夹下存 ...
- tomcat架构分析(connector BIO 实现)
出处:http://gearever.iteye.com 在tomcat架构分析(概览)中已经介绍过,connector组件是service容器中的一部分.它主要是接收,解析http请求,然后调用本s ...
- C语言 · 最大子阵
历届试题 最大子阵 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和 ...
- 服务器不装Excel读取Excel并转换DataTable
原来是用OleDb.4.0组件读取Excel,但是放到服务器后 傻了,服务器没装Excel ,而且领导说不可以装 没办法,只好自己重新找下代码 在CodeProject找到一个开源的dll,一阵欢喜啊 ...
- Golang map 如何进行删除操作?
Cyeam 关注 2017.11.02 10:02* 字数 372 阅读 2784评论 0喜欢 3 map 的删除操作 Golang 内置了哈希表,总体上是使用哈希链表实现的,如果出现哈希冲突,就把冲 ...
- rufus/scheduler
之前先在initializers 文件夹下建立了一个task.rb ,rails服务启动的时候执行,本地没问题,可是服务器上启动了3个进程,会执行3遍,解决方法是 把task.rb 放到 script ...
- npm常用命令汇总
npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准. 有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. 1.npm install ...
- css样式DEMO
<!-- 导入框 --> <div id="importWin" class="easyui-window" title="服务封装 ...
- [mysql] MySQL Order By Rand()效率【转载】
最近由于需要大概研究了一下MYSQL的随机抽取实现方法.举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RA ...