有时候Json传递的数据有时候为一条数据,但有的时候会发送一组数据到客服端进行解析,这段时间学习了Gson解析Json包含了一条数据和一组数据
package com.example.gson;
import java.util.List;
import java.util.Map;
import javax.swing.tree.VariableHeightLayoutCache;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class gsontest {
public static void main(String[] args) {
int i = 1 ; // 1解析json一条数据 2 解析一组数据
// String json = "{\"message\":查询成功!,\"obj\":[{\"region_name\":\"key1\",\"region_code\":\"value1\"}]}";
if (i == 1) {
//{"message":"查询成功!","obj":{"db_create_time":"2016-05-16 14:42:25","blood_sugar":4.7,"create_date":"2016-05-16 14:42:25","sfzh":"610526198506011234"},"success":true}
String json = "{\"message\":查询成功!,\"obj\":{\"region_name\":\"2016-05-1614\",\"region_code\":\"qwe\"}}";
Gson gson = new Gson();
Map<String, Object> b = gson.fromJson(json,new TypeToken<Map<String, Object>>(){}.getType()); //使用map<>直接进行使用
System.out.println(b.get("message"));
String obj = b.get("obj").toString();
System.out.println(obj);
// Map<String, Object> c = gson.fromJson(obj,new TypeToken<Map<String, Object>>(){}.getType());
DataMessage c = gson.fromJson(obj,new TypeToken<DataMessage>(){}.getType());
// System.out.println(c.get("region_name"));
System.out.println(c.getRegion_name());
}else {
String json = "{\"message\":查询成功!,\"obj\":[{\"region_name\":\"key1\",\"region_code\":\"value1\"}]}";
Gson gson = new Gson();
A<B> b = gson.fromJson(json,new TypeToken<A<B>>(){}.getType());
System.out.println(b.getMessage());
System.out.println(b.getObj().get(0).getRegion_name());
System.out.println(b.getObj().get(0).getRegion_code());
}
}
class A<T> {
private String message;
private List<T> obj ;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<T> getObj() {
return obj;
}
public void setObj(List<T> obj) {
this.obj = obj;
}
}
class B{
private String region_name;
private String region_code;
public String getRegion_name() {
return region_name;
}
public void setRegion_name(String region_name) {
this.region_name = region_name;
}
public String getRegion_code() {
return region_code;
}
public void setRegion_code(String region_code) {
this.region_code = region_code;
}
}
}