日期:2014-05-16  浏览次数:20335 次

<一> Google Gson 转换Json字符串和对象(对象中还有内嵌对象,Map,数组)

???? 可以直接执行如下类中的main方法将json字符串转换为相应对象后并打印出转换后的对象:

?

import java.util.List;
import java.util.Map;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

/**
 * 
 * @author Josh Wang(Sheng)
 *
 * @email  josh_wang23@hotmail.com
 */
public class JsonBean {
	private String a;
	private List<B> b; // array
	private C c;
	
	private Map<String, String> d;
	

	public class B {
		private String b1;
		private String b2;
		public String getB1() {
			return b1;
		}
		public void setB1(String b1) {
			this.b1 = b1;
		}
		public String getB2() {
			return b2;
		}
		public void setB2(String b2) {
			this.b2 = b2;
		}
		
		
	}

	public class C {
		public String c1;
		public String c2;
	}
	

	public String getA() {
		return a;
	}



	public void setA(String a) {
		this.a = a;
	}



	public List<B> getB() {
		return b;
	}



	public void setB(List<B> b) {
		this.b = b;
	}



	public C getC() {
		return c;
	}



	public void setC(C c) {
		this.c = c;
	}



	public Map<String, String> getD() {
		return d;
	}



	public void setD(Map<String, String> d) {
		this.d = d;
	}
	
	@Override
	public String toString() {
		return "JsonBean [a=" + a + ", b=" + b.get(0).getB2() + ", c=" + c.c2 + ", d=" + d.get("myKey") +"]";
	}
	
	public static void main(String[] args) {
		String json = "{\"a\":\"100\",\"b\":[{\"b1\":\"b_value1\",\"b2\":\"b_value2\"},{\"b1\":\"b_value1\",\"b2\":\"b_value2\"}],"
				+ "\"c\":{\"c1\":\"c_value1\",\"c2\":\"c_value2\"}, \"d\": {\"myKey\":\"myValue\"} }";
		
		GsonBuilder builder = new GsonBuilder();
		// builder.setDateFormat(DateUtils.MIDDLE_LINE_TIMESTAMP);
		// builder.registerTypeAdapter(NucleonEventType.class, new NucleonEventTypeSerializer());
		
		Gson gson = builder.create();
		
		System.out.println(gson.fromJson(json, JsonBean.class));
	}

	
}

?

执行结果为:

JsonBean [a=100, b=b_value2, c=c_value2, d=myValue]

?

?

?