双流网站建设,网站怎么 备案,秦皇岛市人口,深圳做营销型网站1.简单介绍json是android与server通信过程中经常使用的数据格式#xff0c;比如。例如以下是一个json格式的字符串#xff1a;{address:Nanjing,name:NUPT,students:[{name:stu1,比如。例如以下是一个json格式的字符串{address:Nanjing,name:NUPT,students:[{name:stu1,id:10000,age:20},{name:stu1,id:10001,age:21},{name:stu1,id:10002,age:22}]}2.android中经常使用的两个json库为Gson和Jackson一下就看一下它们是怎样将对象转化为json字符串以及怎样将json字符串转化为java对象。定义Student类/** $filename: Student.java,v $* $Date: 2014-5-12 $* Copyright (C) ZhengHaibo, Inc. All rights reserved.* This software is Made by Zhenghaibo.*/package com.example.testjson;/**author: ZhengHaibo*web: http://blog.csdn.net/nuptboyzhb*mail: [email protected]*2014-5-12 Nanjing,njupt,China*/public class Student {private String name;private String id;private int age;public String getName() {return name;}public void setName(String name) {this.name name;}public String getId() {return id;}public void setId(String id) {this.id id;}public int getAge() {return age;}public void setAge(int age) {this.age age;}}定义School类/** $filename: School.java,v $* $Date: 2014-5-12 $* Copyright (C) ZhengHaibo, Inc. All rights reserved.* This software is Made by Zhenghaibo.*/package com.example.testjson;import java.util.List;/**author: ZhengHaibo*web: http://blog.csdn.net/nuptboyzhb*mail: [email protected]*2014-5-12 Nanjing,njupt,China*/public class School {private String name;private String address;List students;public String getName() {return name;}public void setName(String name) {this.name name;}public String getAddress() {return address;}public void setAddress(String address) {this.address address;}public List getStudents() {return students;}public void setStudents(List students) {this.students students;}}初始化一个School的java对象待使用private School initSchoolData(){School school new School();school.setAddress(Nanjing);school.setName(NUPT);List list new ArrayList();for(int i 0;i3;i){Student student new Student();student.setAge(20i);student.setId(1000i);student.setName(stu1);list.add(student);}school.setStudents(list);return school;}3.使用Gson。进行java对象与json字符串之间的相互转换private void testGson(){School school initSchoolData();Gson gson new Gson();//将对象转化为json字符串String jsonString gson.toJson(school).toString();//打印System.out.println(GSONjsonString);/******切割线*****///将字符串转化为JSON对象School resultSchool gson.fromJson(jsonString, School.class);//打印System.out.println(resultSchool.getStudents().get(0).getName());}可见Gson是通过toJson和fromJson两个方法进行转换的使用起来十分方便。4.使用Jacksonprivate void testJackson(){School school initSchoolData();ObjectMapper objectMapper new ObjectMapper();String jsonString ;//将对象转化为Json字符串try {jsonString objectMapper.writeValueAsString(school);System.out.println(JacksonjsonString);} catch (JsonProcessingException e) {// TODO Auto-generated catch blocke.printStackTrace();}//将json字符串解析成java对象try {School resultSchool objectMapper.readValue(jsonString, School.class);//打印System.out.println(resultSchool.getStudents().get(0).getName());} catch (JsonParseException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (JsonMappingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}使用Jackson主要是使用writeValueAsString和readValue这两个方法。此外。Jackson的writeValue和readValue有非常多种參数类型适用于多中场合。注意以上仅仅是这两个工具类的基本使用方法很多其它了解。參见官方文档。