您的位置:首页 > Web前端 > JavaScript

gson解析json

2015-10-13 20:23 441 查看
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);
}


json转List:

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());
}


json转Map:

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);//
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: