json工具类 Object强制转换为List ,JSON转List<>

json工具类 Object强制转换为List ,JSON转List<>

下面有json工具类
也可以参考我另一篇JSON 转对象文章:
https://blog.csdn.net/qq_41080067/article/details/119952003

JSONObject.parseObject 是Alibaba的fastJson包

/**
	 * Object对象转 List集合
	 *
	 * @param object Object对象
	 * @param clazz 需要转换的集合
	 * @param <T> 泛型类
	 * @return
	 */
	public static <T> List<T> changeList(Object object,Class<T> clazz){
		try {
			List<T> result = new ArrayList<>();
			if (object instanceof List<?>){
				for (Object o : (List<?>) object) {
					String string = JSONObject.toJSONString(o);
					T t = JSONObject.parseObject(string, clazz);
					result.add(t);
				}
				return result;
			}
			return null;
		}catch (Exception e){
			e.printStackTrace();

		}

		return null;
	}

使用方法:

 public static void main(String[] args) {
        String list="[       {         \"id\": 1,         \"socialId\": 1,         \"startTime\": \"2022-01-26\",         \"type\": \"1\",         \"state\": \"1\",         \"feedbackStartTime\": null,         \"reason\": null,         \"salary\": 0,         \"entrustTime\": \"2022-04-26\",         \"createUser\": \"admin\",         \"createTime\": \"2022-04-26 16:17:29\",         \"updateUser\": \"admin\",         \"updateTime\": \"2022-04-27 16:54:18\",         \"isDelete\": false,         \"isRecycle\": 0       },       {         \"id\": 2,         \"socialId\": 1,         \"startTime\": \"2022-01-26\",         \"type\": \"2\",         \"state\": \"1\",         \"feedbackStartTime\": null,         \"reason\": null,         \"salary\": 0,         \"entrustTime\": \"2022-04-26\",         \"createUser\": \"admin\",         \"createTime\": \"2022-04-26 16:17:29\",         \"updateUser\": \"admin\",         \"updateTime\": \"2022-04-27 16:54:18\",         \"isDelete\": false,         \"isRecycle\": 0       },       {         \"id\": 3,         \"socialId\": 1,         \"startTime\": \"2022-01-26\",         \"type\": \"3\",         \"state\": \"1\",         \"feedbackStartTime\": null,         \"reason\": null,         \"salary\": 0,         \"entrustTime\": \"2022-04-26\",         \"createUser\": \"admin\",         \"createTime\": \"2022-04-26 16:17:29\",         \"updateUser\": \"admin\",         \"updateTime\": \"2022-04-27 16:54:18\",         \"isDelete\": false,         \"isRecycle\": 0       },       {         \"id\": 4,         \"socialId\": 1,         \"startTime\": \"2022-01-26\",         \"type\": \"4\",         \"state\": \"1\",         \"feedbackStartTime\": null,         \"reason\": null,         \"salary\": 0,         \"entrustTime\": \"2022-04-26\",         \"createUser\": \"admin\",         \"createTime\": \"2022-04-26 16:19:18\",         \"updateUser\": \"admin\",         \"updateTime\": \"2022-04-27 16:54:18\",         \"isDelete\": false,         \"isRecycle\": 0       }     ]";
        Object o = JsonUtils.parseJsonToDto(list, List.class);
        List<HrSocialSecurityIncreasePo> poList = JsonUtils.changeList(o, HrSocialSecurityIncreasePo.class);
     poList.forEach(a-> System.out.println(a.getSocialId()));
        System.out.println(o);
    }

Json工具类:

package com.person.common.utils;

import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

/**
*  JSON 工具类
* @author  zms
* @date   2022/4/28
**/
public class JsonUtils {
	
	/**
	 * 根据传入的DTO得到JsonString
	 * @param object
	 * @return
	 */
	public static String parseObjectToJson(Object object){
		StringWriter writer = null;
		ObjectMapper objectMapper = new ObjectMapper();
		writer = new StringWriter();
		try {
			objectMapper.writeValue(writer, object);
		} catch (JsonGenerationException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return writer.toString();
	}
	
	/**
	 * 根据传入的Object转json
	 * @param object
	 * @return
	 */
	public static String parseJsonToObject(Object object){
		ObjectMapper objectMapper = new ObjectMapper();
		String json = "";
		try {
			json = objectMapper.writeValueAsString(object);
		} catch (JsonGenerationException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return json;
	}
	

	/**
	 * 将json转化为Map
	 * @param json
	 * @return
	 * @throws Exception
	 */
	public static Map<String,Object> parseJsonToMap(String json){
		ObjectMapper objectMapper = new ObjectMapper();
		Map<String, Object> maps = null;
		objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
		try {
			maps = objectMapper.readValue(json, Map.class);
		} catch (JsonParseException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return maps;
	}
	
	/**
	 * json转ReportDetailDto
	 * @param json
	 * @return
	 */
	public static Object parseJsonToDto(String json,Class clz){
		if (json == null || json.trim().length() == 0) {
			throw new IllegalArgumentException("json can not be null");
		}
		ObjectMapper objectMapper = new ObjectMapper();
		objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
		Object object = null;
		try {
			object = objectMapper.readValue(json, clz);
		} catch (JsonParseException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return object;
	}

	/**
	 * Object对象转 List集合
	 *
	 * @param object Object对象
	 * @param clazz 需要转换的集合
	 * @param <T> 泛型类
	 * @return
	 */
	public static <T> List<T> changeList(Object object,Class<T> clazz){
		try {
			List<T> result = new ArrayList<>();
			if (object instanceof List<?>){
				for (Object o : (List<?>) object) {
					String string = JSONObject.toJSONString(o);
					T t = JSONObject.parseObject(string, clazz);
					result.add(t);
				}
				return result;
			}
			return null;
		}catch (Exception e){
			e.printStackTrace();

		}

		return null;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值