可以直接执行如下类中的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]