精华内容
下载资源
问答
  • 对象不能转list报错
    2020-11-30 15:45:06

    Json转换为List要使用Json.parseArray,而不要使用Json.parseObject

    更多相关内容
  • 接口Map转List对象报错 问题描述: 接口Map转List对象报错 前台 //js代码 将form表单里的各种元素里的值组装成js对象,然后成json串,ajax传递给后台 var Vo= JSON.stringify($("#myForm").serializeJson()); /...

    项目场景:

    接口Map转List对象报错


    问题描述:

    接口Map转List对象报错

    前台

    //js代码 将form表单里的各种元素里的值组装成js对象,然后转成json串,ajax传递给后台
     var Vo= JSON.stringify($("#myForm").serializeJson());
    
    // 前端调用$.ajax({
      url : "http://localhost:8080/test",
      type : "POST",
      async : true,
      contentType : "application/json; charset=utf-8",
      data : Vo,//外层定义的json对象
      success : function(res) {alert(JSON.stringify(res));
    }
    
    
    

    后台

    
    
    	//转化时报错
    	Map<String, VO> res = JSON.parseObject(json, Map.class);
    
    	//报错
    	String listStr = JSONArray.toJSONString(result.getData());
    	List<VO> list = JSONArray.parseArray(listStr , VO.class);
    
    	//改成
    	List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});
    
    
    

    原因分析:

    反序列化时候,虽然添加Map.class,但是没有办法指定Vo类型,导致反序列化后的对象类型不对


    解决方案:

    fastJSON,使用TypeReference处理复杂的泛型对象

          
    	//在fastjson中提供了一个用于处理泛型反序列化的类TypeReference。
    
    	import com.alibaba.fastjson.TypeReference;
    
    	List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});
    
    	//如下写法有更好的性能
    
    	import com.alibaba.fastjson.TypeReference;
    
    	final static Type type = new TypeReference<List<VO>>() {}.getType();
    
    	List<VO> list = JSON.parseObject("...", type);
    
    	
    
    
    展开全文
  • java list转JSONObject报错

    2021-02-27 23:01:42
    最近的项目需要将list转json返回到页面显示,遇到问题:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException at net.sf.json.JSONObject._fromBean(JSONObject.java:738) at ...

    最近的项目需要将list转json返回到页面显示,遇到问题:

    net.sf.json.JSONException: java.lang.reflect.InvocationTargetException at net.sf.json.JSONObject._fromBean(JSONObject.java:738) at net.sf.json.JSONObject.fromObject(JSONObject.java:182) at net.sf.json.JSONObject._processValue(JSONObject.java:2426) at net.sf.json.JSONObject._setInternal(JSONObject.java:2447) at net.sf.json.JSONObject.setValue(JSONObject.java:1189) at net.sf.json.JSONObject._fromBean(JSONObject.java:725) at net.sf.json.JSONObject.fromObject(JSONObject.java:182) at net.sf.json.JSONArray._processValue(JSONArray.java:2294) at net.sf.json.JSONArray.processValue(JSONArray.java:2325) at net.sf.json.JSONArray.addValue(JSONArray.java:2312) at net.sf.json.JSONArray._fromCollection(JSONArray.java:841) at net.sf.json.JSONArray.fromObject(JSONArray.java:137) at net.sf.json.JSONArray.fromObject(JSONArray.java:120)

    谷歌了一下,据说是因为list中的数据有java.sql.date类型,而json的转换需要java.util.date。所以转换会报错。如果 list中数据有java.sql.time也会有同样的错。废话不多说,说下怎么解决。JSON jar包提供了扩展JSON转换处理类的方法。扩展类需要实现JsonValueProcessor,代码如下

    import java.sql.Time;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    import java.util.Locale;

    import net.sf.json.JsonConfig;

    import net.sf.json.processors.JsonValueProcessor;

    public class JsonDateValueProcessor implements JsonValueProcessor {

    private String format ="yyyy-MM-dd hh:mm:ss";

    private String format2 ="hh:mm:ss";

    public Object processArrayValue(Object value, JsonConfig config) {

    return process(value);

    }

    public Object processObjectValue(String key, Object value, JsonConfig config) {

    return process(value);

    }

    private Object process(Object value){

    if(value instanceof Date){

    SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.UK);

    return sdf.format(value);

    }

    if(value instanceof Time){

    SimpleDateFormat sdf = new SimpleDateFormat(format2,Locale.UK);

    return sdf.format(value);

    }

    return value == null ? "" : value.toString();

    }

    }

    转换JSON的时候如下:

    JSONObject jsonArray = new JSONObject();

    JsonConfig jsonConfig = new JsonConfig();

    jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor());

    jsonConfig.registerJsonValueProcessor(java.sql.Time.class, new JsonDateValueProcessor());

    JSONArray jsonObj = JSONArray.fromObject(userlist, jsonConfig);

    展开全文
  • LinkedHashMap转List对象报错

    千次阅读 2019-03-06 19:35:29
    LinkedHashMap转List了解LinkedHashMap 详细介绍(写的很好,感谢作者的分享)。 转换方法 例子 import com.zbjk.creditfactory.zeus.general.common.constant.ResponseCode; public class ResponseDto&amp;lt;T&...

    LinkedHashMap转List

    了解LinkedHashMap

    详细介绍(写的很好,感谢作者的分享)

    转换方法

    例子

    
    public class ResponseDto<T> {
    
    	private boolean success;
    	private int code;
    	private String msg;
    	private T data;
    
    	public ResponseDto(){}
    
    	public ResponseDto(ResponseCode responseCode) {
    		code = responseCode.getCode();
    		msg = responseCode.getMsg();
    		success = responseCode.getCode() == ResponseCode.CODE_BASE_SUCCESS.getCode();
    	}
    
    	public ResponseDto(ResponseCode responseCode, T data){
    		code = responseCode.getCode();
    		msg = responseCode.getMsg();
    		success = responseCode.getCode().equals(ResponseCode.CODE_BASE_SUCCESS.getCode());
    		this.data = data;
    	}
    
    	public ResponseDto(ResponseCode responseCode, String msg) {
    		code = responseCode.getCode();
    		this.msg = msg;
    		success = responseCode.getCode().equals(ResponseCode.CODE_BASE_SUCCESS.getCode());
    	}
    
    	public boolean isSuccess() {
    		return success;
    	}
    
    	public void setSuccess(boolean success) {
    		this.success = success;
    	}
    
    	public int getCode() {
    		return code;
    	}
    
    	public void setCode(int code) {
    		this.code = code;
    	}
    
    	public String getMsg() {
    		return msg;
    	}
    
    	public void setMsg(String msg) {
    		this.msg = msg;
    	}
    
    	public T getData() {
    		return data;
    	}
    
    	public void setData(T data) {
    		this.data = data;
    	}
    }
    
    
    ResponseDto result = productChannel.queryType(param);
    String listTxt = JSONArray.toJSONString(result.getData());
    List<ResponseCodeDto> list = JSONArray.parseArray(listTxt, ResponseCodeDto.class);
    

    在此记一下,欢迎指正!!

    展开全文
  • jsonjava对象报错

    2021-06-03 09:58:28
    最近在做自动化的过程中遇到一个jsonjava对象的坑。...导致转对象失败,报错如下 解决方法:转对象之前重新整理替换所的json对象,把多出来的双引号替换掉。 String newData = JSON.toJSONString(data).repla
  • 将需要传参的List<Object>封装 package com.ruoyi.admin.dto; import com.ruoyi.admin.domain.PtGoodsSpecs; import lombok.Data; import java.util.List; @Data public class GoodsSpeceDto { ...
  • AjaxResult deviceAlarmList = tDengineRemote....List tbPointExceptions = JSONArray.parseArray(JSONArray.toJSON(rows).toString(),TbPointException.class); 备注:rows 是一个大的对象,里边封装了许多实
  • 这两天做springboot升级的时候遇见一个问题,报错如下(Caused by: ...),根据异常栈找到报错代码处,这个对...
  • java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object; for (int i = 0; i < list.size(); i++) { Object [] obj = (Object[]) list.get...} 这样报错。。。 list中只有...
  • 前言:前两天在维护项目时,新增加一个功能,导致要在一个入参实体中加一个List 对象,但是一起项目,然后就报错了,因为在controller类的该方法上,入参前面有@RequestBody 拿出百度,找到一个解决办法,言简意赅 ...
  • JSONArray.fromObject(list) list转json报错

    千次阅读 2018-09-03 21:33:34
    做一个web应用 浏览记录... list用JSONArray.fromObject(list) 转换成json格式时莫名其妙地报错 报错如下: net.sf.json.JSONException: java.lang.reflect.InvocationTargetException  at net.sf.json.JSONObj...
  • Java中循环删除list报错解决办法

    千次阅读 2021-06-23 16:49:39
    印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区。 JAVA中循环遍历list有三种方式for循环、增强for...
  • JSONObject转换带有Date类型对象的集合时格式问题处理办法问题描述:当一个List集合中含有包含Date类型的字段对象时,而服务器用JSONObject处理时,其中的日期格式不是我们想发的”yyy-MM-dd”格式解决办法:既然有...
  • 前端使用jquery向后台传递数组类型的参数,Java后台直接通过List类型接收,会发现无法取到参数。
  • json字符串转对象集合,日期时间戳日期类型报错 gson 解决: Type type = new TypeToken<List<PmsStaff>>() {}.getType(); GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter...
  • JDK8有很多新特性,比如lambda表达式,函数式编程以及stream流的使用,这几个新特性,使用过之后就爱不释手了,比如将list集合通过stream可以直接转换成map对象。 语法: Map map = list.stream.stream().collect...
  • 问题 我有一个map对象 Map<LabelPrintRecordPo, List<String>> printMap 然后定义了一个List<String>对象: ...在使用add方法就不会报错 List<String> list =new ArrayList<
  • 解决fastjson泛型转换报错

    千次阅读 2020-11-21 10:32:08
    private List<T> records; } 实体类 @Data public class UserDO { private String id; private String name; } Demo测试 public class AppDemo { public static void main(String[] args) { ResultSetDTO<UserDO> ...
  • 1.报错信息如下 com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.zongmao.school_v2.entity.Shop` (no Creators, like default constructor, exist): cannot ...
  • Redis使用LeftPushAll保存list报错问题

    千次阅读 2018-11-08 22:19:23
    Redis使用LeftPushAll保存list报错问题--18-11-08记录日志Redis版本(2.4.5) Redis版本(2.4.5) 关于这个问题,纠结了一下午,用的IDE: idea,报错显示tomcat问题,不明所以,最后在Redis官网上找到了答案,他们说...
  • 我们先看一段报错代码 <template> <div>{{form.a.b.c}}</div> </template> <script> export default { ...这块form因为form.a是undefined,所以对象继续查下去会报错 我们有时
  • int(x [,base]) 将x转换为一个整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) 创建一个复数 str(x) 将对象 x 转换为字符串 repr(x) ...
  • List转换成JSON对象报错(五)

    千次阅读 2014-05-02 23:23:48
    List转换成JSON对象 1、具体错误如下
  • 传Livy闭包head of empty list报错排查步骤。在调用livy Job任务闭包的时候,闭包中不要传入scala的List类型实例(闭包里初始化的对象不会被序列化),因为livy的序列化kryo类对scala类型支持,会造成Nil单例破坏。...
  • 1.解决思路:从list中取出来的数据需要进行转化成json格式字符串,然后再将该json格式字符串转换成对象,这样就不会再出现报错情况,成功遍历该list列表。 2.解决方法一:使用json对其进行转换 pom.xml 需要引入下...
  • } 如果myProp为空,则不报错; 返回默认值 #{myobj.myProp!"默认值"} 含有上边的功能,同时如果myProp为空,则返回“默认值” 对象和属性都判空 #{(myobj.myProp)!"默认值"} 如果myobj为空或者myProp为空,都...
  • EF匿名类Tolist()报错

    千次阅读 2019-03-08 12:51:09
    遇到一个项目问题,最后定位问题的时候,是EF新查询出来的数据,进行了select 后skip 分页 最后Tolist()报错,网上给的原因是匿名类转换问题,可以在skip之前去Tolist(). 连续两次被相同问题困扰。 一、举例 var ...
  • List转换成JSON对象报错(二)

    千次阅读 2014-05-02 23:09:55
    List转换成JSON对象 1、具体报错ru

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 261,015
精华内容 104,406
热门标签
关键字:

对象不能转list报错