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 ……的更多相关文章

  1. 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 ...

  2. redis通过json方案存取对象com.alibaba.fastjson.JSONException: syntax error, expect

    问题描述: redis基于json方案存取对象时报错:com.alibaba.fastjson.JSONException: syntax error, expect com.alibaba.fast ...

  3. 做文件上传下载时报这个错com.alibaba.fastjson.JSONException: illegal identifier : \

    ::-exec-] DEBUG c.i.e.m.I.insertDataEmebeding - <== Updates: ::-exec-] ERROR c.i.e.c.CaseArchiveC ...

  4. 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 ...

  5. 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 ...

  6. fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string: "13:02:19"

    问题:time类型数据插入不进mysql数据库:调试的时候报如下错误: Caused by: java.lang.NumberFormatException: For input string: &q ...

  7. 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 ...

  8. 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. ...

  9. 解决使用Redis时配置 fastjson反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support

    1.问题描述 在使用redis时,配置自定义序列化redisTemplate为FastJsonRedisSerializer .  1 /** 2 * 自定义redis序列化器 3 */ 4 @Sup ...

随机推荐

  1. Gson json解析工具

    json 解析工具 ,谷歌出品 对象转换字符串 HashMap<String,String> hashMap = new HashMap<String, String>();  ...

  2. python content list(1--4)

    part 1 python language 1. environment building and config 2. variable and data type 3. programming b ...

  3. 【 Linux 】单台服务器上并发TCP连接数

    单台服务器上并发TCP连接数    问题:一台服务器到底能够支持多少TCP并发连接呢? 1. 文件描述符限制:    对于服务器来说,每一个TCP连接都要占用一个文件描述符,一旦文件描述符使用完,新的 ...

  4. 一站式学习Wireshark(二):应用Wireshark观察基本网络协议

    TCP: TCP/IP通过三次握手建立一个连接.这一过程中的三种报文是:SYN,SYN/ACK,ACK. 第一步是找到PC发送到网络服务器的第一个SYN报文,这标识了TCP三次握手的开始. 如果你找不 ...

  5. JEECG常见问题大全征集

    大家还有什么问题.请跟帖,谢谢支持. .  JEECG常见问题大全征集 1. jeecg没有数据库脚本问题   jeecg不须要数据库脚本,在数据库创建好数据库.项目配置好数据源链接.会自己主动建表. ...

  6. 打开Win7休眠模式和离开模式的方法

    打开Win7休眠模式和离开模式的方法 ●启动休眠模式 从开始菜单中找到“附件→命令提示符”,手工输入如下命令:powercfg -a,从这里可以清楚的看到,计算机是支持休眠的,显示“尚未启用休眠&qu ...

  7. spring boot 拦截器之WebMvcConfigurerAdapter

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   上一篇我们讲到了拦截器,我们也简单的讲解到了WebMvcConfigurerAdapter这个拦截器.本篇我们来对Web ...

  8. fancybox 使用方法

    项目中需要做一个相册功能.选择的是fancybox,大概记录一下使用方法: 1.引用fancybox所需要的文件,你可以下载至本地或者引用CDN. fancybox最新版本下载地址:http://fa ...

  9. R工具包

    直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和爬一些R的资料,看着看着就入迷了,这就是个大宝库了,以前怎么没发现,看来还是太狭隘了.直到前几天我看到这个 ...

  10. MySQL中乐观锁和悲观锁 原理、区别

    悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据 ...