日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 通透Gson@Expose注解、@SerializedName、解析json數據

通透Gson@Expose注解、@SerializedName、解析json數據

來源:程序員人生   發布時間:2015-04-02 08:40:54 閱讀次數:5182次

在講如何解析數據之前,先描寫1下gson中的兩個注解@Expose和@SerializedName。

@Expose注解的作用:辨別實體中不想被序列化的屬性,其本身包括兩個屬性deserialize(反序列化)和serialize(序列化),默許都為true。

使用 new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();創建Gson對象,沒有@Expose注釋的屬性將不會被序列化.。

private class User{ private int id; @Expose private String name; ....... }
這樣create() gson對象序列化user,只會有name這1個屬性

@SerializedName注解的作用:定義屬性序列化后的名稱

public class User{ private int id; @Expose @SerializedName("username") private String name; ....... }

另外想要不序列化某個屬性,也能夠使用transient。

private class User{ private int id; private transient String name; ....... }

下面羅列1下gson如何解析json數據的

//轉換器 GsonBuilder builder = new GsonBuilder(); <span style="color:#ff0000;">// 不轉換沒有 @Expose 注解的字段</span> builder.excludeFieldsWithoutExposeAnnotation(); Gson gson = builder.create(); <span style="color:#ff0000;">//1、對象轉string</span> Student stu = new Student(); stu.setStudentId(333); stu.setStudentName("qqq"); String stuStr = gson.toJson(stu); System.out.println(stuStr); //{"studentName":"qqq","studentId":333} <span style="color:#ff0000;">//2、string轉對象</span> Student user2 = gson.fromJson(stuStr, Student.class); System.out.println(user2); String stuTemp = "{"studentName":"qqq2","studentId":3335}"; Student user4 = gson.fromJson(stuTemp, Student.class); System.out.println(user4); <span style="color:#ff0000;">//3、對象List轉string</span> List<Student> testBeanList = new ArrayList<Student>(); Student testBean = new Student(); testBean.setStudentId(555); testBean.setStudentName("552"); testBeanList.add(testBean); //Gson gsonList = new Gson(); Type type = new TypeToken<List<Student>>(){}.getType(); //指定集合對象屬性 String beanListToJson = gson.toJson(testBeanList, type); System.out.println(beanListToJson); //[{"studentName":"552","studentId":555}] <span style="color:#ff0000;">//集合string轉對象list</span> List<Student> testBeanListFromJson = gson.fromJson(beanListToJson, type); System.out.println(testBeanListFromJson); //[555:552] <span style="color:#ff0000;">//4、集合如果不指定類型 默許為String</span> List<String> testList = new ArrayList<String>(); testList.add("first"); testList.add("second"); String listToJson = gson.toJson(testList); System.out.println(listToJson); //["first","second"] <span style="color:#ff0000;">//5、集合字符串轉回來需要指定類型</span> List<String> testList2 = (List<String>) gson.fromJson(listToJson,new TypeToken<List<String>>() {}.getType()); System.out.println(testList2); <span style="color:#ff0000;">//6、 將HashMap字符串轉換為 JSON</span> Map<String, String> testMap = new HashMap<String, String>(); testMap.put("id", "id.first"); testMap.put("name", "name.second"); String mapToJson = gson.toJson(testMap); System.out.println(mapToJson); //{"id":"id.first","name":"name.second"} <span style="color:#ff0000;">//7、stringMap轉對象</span> Map<String, String> userMap2 = (Map<String, String>) gson.fromJson(mapToJson,new TypeToken<Map<String, String>>() {}.getType()); System.out.println(userMap2); //{id=id.first, name=name.second} <span style="color:#ff0000;">//8、對象含有普通對象、集合、map情況</span> Student user1 = new Student(); user1.setStudentId(1001); user1.setStudentName("張3"); Student user3 = new Student(); user3.setStudentId(1002); user3.setStudentName("李4"); Map<String, Student> userMap = new HashMap<String, Student>(); userMap.put("user1", user1); userMap.put("user3", user3); List<Student> userList = new ArrayList<Student>(); userList.add(user1); userList.add(user3); Teacher groupBean = new Teacher(); groupBean.setStudent(user1); groupBean.setStus(userList); groupBean.setMap((HashMap)userMap); //groupBean.setUserList(userList); Gson gsonGroup = new Gson(); String sGroupBean = gsonGroup.toJson(groupBean, new TypeToken<Teacher>() {}.getType()); System.out.println(sGroupBean); /*{"stus":[{"studentName":"張3","studentId":1001},{"studentName":"李4","studentId":1002}],"student":{"studentName":"張3","studentId":1001},"map":{"user3":{"studentName":"李4","studentId":1002},"user1":{"studentName":"張3","studentId":1001}},"id":0,"age":0}*/ <span style="color:#ff0000;">//9、復雜對象string轉對象</span> Teacher groupBean2 = (Teacher) gson.fromJson(sGroupBean,new TypeToken<Teacher>() {}.getType()); System.out.println(groupBean2); package com.andtools; import com.google.gson.annotations.Expose; public class Student { @Expose private String studentName; @Expose private int studentId; public Student(){} public Student(int studentId,String studentName){ this.setStudentId(studentId); this.setStudentName(studentName); } public String toString(){ return this.getStudentId() + ":" + this.getStudentName(); } public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public int getStudentId() { return studentId; } public void setStudentId(int studentId) { this.studentId = studentId; } } package com.andtools; import java.util.HashMap; import java.util.List; import java.util.Map; import com.google.gson.annotations.Expose; public class Teacher { @Expose private int id; @Expose private String name; @Expose private int age; @Expose private Student student; @Expose private List stus; @Expose private HashMap map; public String toString(){ return this.getId()+":"+this.getName()+":"+this.getAge() +":"+ this.getStudent().toString() + ":" + this.getStus() + ":" + this.getMap(); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } public List getStus() { return stus; } public void setStus(List stus) { this.stus = stus; } public HashMap getMap() { return map; } public void setMap(HashMap map) { this.map = map; } }






生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91久久久久久久久久久久久 | 国产一区二区精品久久 | 亚洲一区二区三区四区不卡 | 黄色小视频免费观看 | 欧美另类视频 | 色一情一乱一伦一区二区三区 | 视频一区二区三区在线观看 | 久久成人免费 | 成人精品鲁一区一区二区 | 午夜精品久久久久久久久久蜜桃 | 国产福利视频在线 | 国产高清在线看 | www.亚洲一区 | 韩日精品一区二区 | 欧美日韩一二三 | 久久亚洲二区 | 欧美日韩a| 中文视频在线 | 久久久www成人免费精品 | 欧美国产三级 | 久热中文 | 久久九精品 | 亚洲视频大全 | 日韩一区二区av | 欧美精品1区2区3区 日本特黄a级高清免费大片 | 久久极品 | 嫩草影视大全 | 国产日韩一区二区三区 | 日韩网站免费 | av网站免费看 | 久久免费国产精品 | 欧美激情在线精品一区二区三区 | 国产男女视频 | 中文字幕精品久久 | 国产精品久久久久久久久久久久久久 | 国产二区视频在线观看 | 在线观看日韩视频 | 欧美成人激情视频 | 99热精品在线播放 | 希岛爱理和黑人中文字幕系列 | 国产亚洲视频在线观看 |