gson解析json
public class Student
{
public String name;
public int age;
public boolean sex;
}
Object轉json串:
Gson gson = new Gson();
String json = gson.toJson(student);
json轉Object:
private static void parser2Object()
{
// json轉換 爲簡單對象
String json = "{'name':'張三','age':18,'sex':true}";
Gson gson = new Gson();
Student student = gson.fromJson(json, Student.class);//
System.out.println(student);
}
private static void parser2List()
{
String json = "[{'name':'劉1','age':18,'sex':true},{'name':'劉2','age':19,'sex':false}]";
Gson gson = new Gson();
TypeToken<List<Student>> token = new com.google.gson.reflect.TypeToken<List<Student>>() {};//
List<Student> stus = gson.fromJson(json, token.getType());
}
private static void parser2Map()
{
String json = "[{'name':'劉1','age':18,'sex':true},{'name':'劉2','age':19,'sex':false}]";
Gson gson = new Gson();
TypeToken<Map<String, Student>> token = new com.google.gson.reflect.TypeToken<Map<String, Student>>() {};
Map<String, Student> stus = gson.fromJson(json, token.getType());
}
json先節點解析,在轉換:
private static void parser2()
{
// 節點解析
String json = "{'status':200,'data':{'name':'張三','age':18,'sex':true}}";
// 1.獲得 解析者
JsonParser parser = new JsonParser();
// 2.獲得 根節點元素
JsonElement element = parser.parse(json);
// 3.根據 文檔判斷根節點屬於 什麼類型的 Gson節點對象
JsonObject root = element.getAsJsonObject();
// 4. 取得 節點 下 的某個節點的 value
JsonPrimitive flagJson = root.getAsJsonPrimitive("status");
int asInt = flagJson.getAsInt();// 請求返回判斷
JsonObject dataJson = root.getAsJsonObject("data");
// (JsonElement, Class<T>) element->obj/arr
Student student = new Gson().fromJson(dataJson, Student.class);
root.getAsJsonArray();
}
嵌套類解析:
public class NewsBean
{
public int code;
public ArrayList<NewsMenuData> data;
public class NewsMenuData
{
public String id;
public String title;
public ArrayList<NewsTabData> children;
// toString...
}
public class NewsTabData
{
public String id;
public String title;
// toString...
}
// toString...
}
{
'code': 1,
'data': [
{
'id': 1,
'title': 'news',
'children': [
{
'id': 1,
'title': 'dataTitle'
},
{
'id': 1,
'title': 'dataTitle'
}
]
},
{
'id': 2,
'title': 'news',
'children': [
{
'id': 1,
'title': 'dataTitle'
},
{
'id': 1,
'title': 'dataTitle'
}
]
}
]
}
String json = "{'code':1,'data':[{'id':1,'title':'news','children':[{'id':1,'title':'dataTitle'},{'id':2,'title':'news','children':[{'id':1,'title':'dataTitle'}]},{'id':1,'title':'news','children':[{'id':2,'title':'dataTitle'},{'id':2,'title':'news','children':[{'id':1,'title':'dataTitle'}]}]}";
Gson gson = new Gson();
NewsBean student = gson.fromJson(json, NewsBean.class);//