关闭

json字符串与Object、List、Map的互转工具类

标签: json对象mapList
11942人阅读 评论(12) 收藏 举报
分类:
package com.cq2022.zago.base.util;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.util.List;
import java.util.Map;

import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import org.codehaus.jackson.map.annotate.JsonSerialize;

import com.alibaba.fastjson.JSONArray;

/**
 * Json工具类,实现JSON与Java Bean的互相转换
 * User: shijing
 * <span style="font-family: Arial, Helvetica, sans-serif;">2015年4月3日上午10:42:19</span>
 */

public class JsonUtils {

	private static ObjectMapper objectMapper = new ObjectMapper();
	private static JsonFactory jsonFactory = new JsonFactory();

	static {
		objectMapper.configure(SerializationConfig.Feature.WRITE_NULL_MAP_VALUES, false);
		objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
	}

	/**
	 * 泛型返回,json字符串转对象
	 * 2015年4月3日上午10:42:19
	 * auther:shijing
	 * @param jsonAsString
	 * @param pojoClass
	 * @return
	 * @throws JsonMappingException
	 * @throws JsonParseException
	 * @throws IOException
	 */
	public static <T> T fromJson(String jsonAsString, Class<T> pojoClass) throws JsonMappingException,
			JsonParseException, IOException {
		return objectMapper.readValue(jsonAsString, pojoClass);
	}

	public static <T> T fromJson(FileReader fr, Class<T> pojoClass) throws JsonParseException, IOException {
		return objectMapper.readValue(fr, pojoClass);
	}

	/**
	 * Object对象转json
	 * 2015年4月3日上午10:41:53
	 * auther:shijing
	 * @param pojo
	 * @return
	 * @throws JsonMappingException
	 * @throws JsonGenerationException
	 * @throws IOException
	 */
	public static String toJson(Object pojo) throws JsonMappingException, JsonGenerationException, IOException {
		return toJson(pojo, false);
	}

	public static String toJson(Object pojo, boolean prettyPrint) throws JsonMappingException, JsonGenerationException,
			IOException {
		StringWriter sw = new StringWriter();
		JsonGenerator jg = jsonFactory.createJsonGenerator(sw);
		if (prettyPrint) {
			jg.useDefaultPrettyPrinter();
		}
		objectMapper.writeValue(jg, pojo);
		return sw.toString();
	}

	public static void toJson(Object pojo, FileWriter fw, boolean prettyPrint) throws JsonMappingException,
			JsonGenerationException, IOException {
		JsonGenerator jg = jsonFactory.createJsonGenerator(fw);
		if (prettyPrint) {
			jg.useDefaultPrettyPrinter();
		}
		objectMapper.writeValue(jg, pojo);
	}

	/**
	 * json字符串转Map
	 * 2015年4月3日上午10:41:25
	 * auther:shijing
	 * @param jsonStr
	 * @return
	 * @throws IOException
	 */
	public static Map<String, Object> parseMap(String jsonStr) throws IOException {
		Map<String, Object> map = objectMapper.readValue(jsonStr, Map.class);
		return map;
	}

	public static JsonNode parse(String jsonStr) throws IOException {
		JsonNode node = null;
		node = objectMapper.readTree(jsonStr);
		return node;
	}

	public static ObjectMapper getObjectMapper() {
		return objectMapper;
	}
	
	/**
	 * json字符串转 List对象
	 * 2015年4月2日上午10:22:20
	 * auther:shijing
	 * @param str	json字符串
	 * @param clazz	转换的类型
	 * @return
	 */
	public static <T> List<T> fromListJson(String str,Class<T> clazz){
		return JSONArray.parseArray(str, clazz);
	}

}

3
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Jackson 高性能的JSON处理 ObjectMapper

Jackson 高性能的JSON处理 android/移动开发必备jackson 分类: android 2011-11-08 20:10 469人阅读 评论(0) 收藏 举报 ...
  • wangyang2698341
  • wangyang2698341
  • 2012-11-26 00:22
  • 93488

Java:JSON和Map相互转换

Java:JSON和Map相互转换 1. JSON String to Mappackage com.inspur.trc.util; import java.util.HashMap; impor...
  • zitong00
  • zitong00
  • 2015-08-09 17:07
  • 32956

JSON格式的String转Map——jackson

需要引入jackjson的core、databind、annotation三个jar包jar包下载链接:http://mvnrepository.com/search?q=jackson附上测试源码:...
  • superit401
  • superit401
  • 2016-06-20 16:59
  • 1527

jackson的ObjecrMapper(高效转化json类)

附ObjectMapper的API:http://tool.oschina.net/uploads/apidocs/jackson-1.9.9/org/codehaus/jackson/map/Obj...
  • woshishuiaaaD
  • woshishuiaaaD
  • 2016-10-12 12:03
  • 3541

java处理json的工具类(list,map和json的之间的转换)

需要下载第三方的jar :net.sf.jsonimport java.io.BufferedReader; import java.io.InputStream; import java.io.In...
  • shubingzhuoxue
  • shubingzhuoxue
  • 2015-06-24 16:54
  • 16321

使用jackson将JSON字符串转成List集合

public class MenuUtil {public static ListsMenuRequest changeMenuStringToListsMenuRequest(String menu...
  • zebinaibude
  • zebinaibude
  • 2014-07-18 16:18
  • 3349

iOS JSON与Object之间的映射 ObjectMapper For Swift

在实际项目开发过程中,很多时候移动终端设备都要与服务器进行数据交互。两者之间的数据格式通常为 JSON 和 XML。而 JSON 数据格式因其简单、易操作、高效率的特点而被广大开发者所使用。在项目开发...
  • Anennzxq
  • Anennzxq
  • 2016-04-07 00:20
  • 5169

使用ObjectMapper把json转换为实体-时间转换问题

ObjectMapper转换为实体时,对于时间的格式化处理是调用自己的
  • jiayen
  • jiayen
  • 2014-05-27 10:14
  • 5654

json有两种类型,jsonObject(即jsonNode)和jsonArray,jsonArray怎么遍历?为什么不能将jsonArray转换为list?

json有两种类型,jsonObject(即jsonNode)和jsonArray 1)jsonArray怎么遍历? ①、转为JsonArray格式  ②、使用Iterator进行遍历准备 ...
  • Ideality_hunter
  • Ideality_hunter
  • 2016-11-21 16:30
  • 3224

环信修改用户名反思之jsonNode转list

刚才在做环信的东西,不得不说提供的接口略少。 我需要本系统和环信的系统的关联。本系统修改了用户名,环信也必须修改用户名。而环信没有修改用户名的接口。怎么办呢?我的思路与做法就是删除原用户,复制好友新...
  • maxu12345
  • maxu12345
  • 2015-05-22 16:12
  • 1181
    个人资料
    • 访问:555616次
    • 积分:5395
    • 等级:
    • 排名:第5839名
    • 原创:102篇
    • 转载:33篇
    • 译文:0篇
    • 评论:351条
    个人简介
    我只是一个简单的Coder,为了兴趣和理想奋斗在生活的道路上
    希望大家多多交流,共同进步,有疑问或想法请留言或者私信,也可以加群:157797573

    博客专栏
    最新评论
    你还在一个人孤独的奋斗吗?
    其实,你并不寂寞,欢迎加入CSDN Java群,这里是你的另一个家!    点击加入:CSDN Java群