json解析

1.json辅助类

package com.cloudtech.util;
import java.io.IOException;
import java.io.StringWriter;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * bean转json格式或者json转bean格式, 项目中我们通常使用这个工具类进行json---java互相转化
 */
public class JacksonUtil {
	private static ObjectMapper mapper = new ObjectMapper();
 
	public static String bean2Json(Object obj) throws IOException {
		StringWriter sw = new StringWriter();
		JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
		mapper.writeValue(gen, obj);
		gen.close();
		return sw.toString();
	}
 
	public static <T> T json2Bean(String jsonStr, Class<T> objClass)
			throws JsonParseException, JsonMappingException, IOException {
		return mapper.readValue(jsonStr, objClass);
	}
}

2.复杂事例

http接口返回list,如何处理?

	ObjectMapper mapper = new ObjectMapper();
	JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, BloomSky.class);
	List<BloomSky> bloomSky = (List<BloomSky>)mapper.readValue(doGet, javaType);

json解析

注意:这里增加了一个@jsonProperty注解,这是为了解决大小写的问题,因为json工具默认是小写+驼峰。为了保证大写情况也能正常使用,需要增加注解