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);//