Java利用Jackson转换json和java对象

需要Jackson的Jar

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public class TestJackson
{
	private static final ObjectMapper MAPPER = new ObjectMapper();

	static
	{
		MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL);
		MAPPER.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false);
		MAPPER.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
		MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
		MAPPER.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
	}
	
	public static void main(String[] args)
	{
		JsonModel model1 = new JsonModel(1, "bryant");
		String json = toJson(model1);
		System.out.println(json);
		JsonModel model2 = toModel(json, JsonModel.class);
		System.out.println(model2);
	}

	public static <T> String toJson(T obj)
	{
		String json = "";

		try
		{
			if (obj != null)
			{
				json = MAPPER.writeValueAsString(obj);
			}
		}
		catch (JsonProcessingException e)
		{
			
		}

		return json;
	}
	
	public static <T> T toModel(String json, Class<T> clazz)
	{
		T instance = null;
		try
		{
			instance = MAPPER.readValue(json, clazz);
		}
		catch (Exception e)
		{
		}
		return instance;
	}
}

public class JsonModel
{
	@Override
	public String toString()
	{
		return "JsonModel [id=" + id + ", name=" + name + "]";
	}

	private int id;
	
	private String name;

	public int getId()
	{
		return id;
	}

	public JsonModel()
	{
		super();
	}

	public JsonModel(int id, String name)
	{
		super();
		this.id = id;
		this.name = name;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}
}


你可能感兴趣的:(java,json)