java对象和json数据转换实现方式3-使用jackson实现

测试代码:

package com.yanek.util.json;

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

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;

public class JacksonUtil {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		Hotel h1=new Hotel();
		h1.setId(1);
		h1.setName("name1");

		Hotel h2=new Hotel();
		h2.setId(2);
		h2.setName("name2");

		RoomTypeVO t1=new RoomTypeVO();
		t1.setPrice("20");
		t1.setTypeid(1);
		t1.setTypename("nnn1");

		List<RoomTypeVO> RoomTypeVOs=new ArrayList<RoomTypeVO>();
		RoomTypeVOs.add(t1);
		RoomTypeVOs.add(t1);
		h1.setRoomTypeVOs(RoomTypeVOs);

		Hotel hotel=new Hotel();

		try {
			System.out.println("json1:::"+bean2Json(h1));

			String s=bean2Json(h1);
			hotel=json2Bean(s,Hotel.class);

			System.out.println("json2:::"+bean2Json(hotel));

			System.out.println("json3:::"+bean2Json(RoomTypeVOs));

			String s2=bean2Json(RoomTypeVOs);
			List<RoomTypeVO> RoomTypeVOs2=new ArrayList<RoomTypeVO>();
			RoomTypeVOs2=json2Bean(s2,List.class);

			System.out.println("json4:::"+bean2Json(RoomTypeVOs2));

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public static String bean2Json(Object obj) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        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 {
        ObjectMapper mapper = new ObjectMapper();
        return mapper.readValue(jsonStr, objClass);
    }

}

输出如下:

json1:::{"id":1,"name":"name1","roomTypeVOs":[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]}
json2:::{"id":1,"name":"name1","roomTypeVOs":[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]}
json3:::[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]
json4:::[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]

相关实体类:

package com.yanek.util.json;

import java.util.List;

public class Hotel {

	public List<RoomTypeVO> getRoomTypeVOs() {
		return RoomTypeVOs;
	}
	public void setRoomTypeVOs(List<RoomTypeVO> roomTypeVOs) {
		RoomTypeVOs = roomTypeVOs;
	}
	private List<RoomTypeVO> RoomTypeVOs;

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

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	private int id;
	private String name;

}

package com.yanek.util.json;

public class RoomTypeVO {

	public int getTypeid() {
		return typeid;
	}
	public void setTypeid(int typeid) {
		this.typeid = typeid;
	}

	public String getTypename() {
		return typename;
	}
	public void setTypename(String typename) {
		this.typename = typename;
	}

	public String getPrice() {
		return price;
	}
	public void setPrice(String price) {
		this.price = price;
	}
	private int typeid;
	private String typename;
	private String price;

}

java对象和json数据转换实现方式3-使用jackson实现

时间: 2024-10-11 17:47:11

java对象和json数据转换实现方式3-使用jackson实现的相关文章

java对象和json数据转换实现方式1-使用json-lib实现

测试代码: package com.yanek.util.json; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JSONLibUtil { /** * @param args */ public static void main(String[] args) { Hotel h1=new H

java对象和json数据转换实现方式2-使用gson实现

测试代码: package com.yanek.util.json; import java.util.ArrayList; import java.util.List; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonParser; public class GsonUtil { /**

FastJson、Jackson、Gson进行Java对象转换Json的细节处理

前言 Java对象在转json的时候,如果对象里面有属性值为null的话,那么在json序列化的时候要不要序列出来呢?对比以下json转换方式 一.fastJson 1.fastJson在转换java对象为json的时候,默认是不序列化null值对应的key的 也就是说当对象里面的属性为空的时候,在转换成json时,不序列化那些为null值的属性 具体案例如下: AutoPartsSearchRequest 有以下属性: public static void main(String[] args

JAVA对象转化JSON出现死循环问题

主要是解决JSON因Hibernate映射生成的集合的转化出现的死循环问题. 这个方法很重要 1 public String ajaxJsonByObjectDirecdt(Object obj, String[] filterNames){ 2 JsonConfig jsonConfig = new JsonConfig(); 3 jsonConfig.setIgnoreDefaultExcludes(false); 4 jsonConfig.setCycleDetectionStrategy

java对象转JSON JS取JSON数据

JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new PropertyFilter() { @Override public boolean apply(Object arg0, String arg1, Object arg2) { // 过滤掉对象里的包含自己的属性(自己关联自己) if (arg1.equals("wareTypes") || arg1.equals("skillS&

java对象与json对象间的相互转换

1.解析json字符串 将json字符串转换为json对象,然后再解析json对象:. JSONObjectjsonObject = JSONObject.fromObject(jsonStr); 根据json中的键得到它的值 Stringname = jsonObject.getString("name"); int age = jsonObject.getInt("age"); 2.将json字符串转换为java对象 同样先将json字符串转换为json对象,再

Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)

首先声明一下,jsonlib转换与GSON相比太差劲了,操作不是一般的繁琐.GSON可以直接转换成各种集合与对象类型.强烈推荐使用GSON.而且GSON一个方法就可以解决,jsonlib转来转去太繁琐了. 手动创建JSONObject与JSONArray有用,用于读取文件对字符串进行处理 -----------------------------jsonlib操作复杂,转换Map与list<map>更是复杂---------------- Jar包 User.java 1 package Te

java对象与json串互转

1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSONStr.toString(); json串—java对象: JSONObject jsonObject = JSONObject.fromObject( jsonString ); Object pojo = JSONObject.toBean(jsonObject,pojoCalss); 2:j

格式化java对象为json

在做java开发的时候,经常要格式化java对象,闲来无事就写了一个, 如果传递的是单个对象生成数据格式  {"id":"1","name":"名字"} 传递的是list对象生成数据格式  [{"id":"1","name":"名字"},{"id":"2","name":"名字2