public class JsonTools { /* * Function : 生成JSON字符串 * Param : value想要转换成JSON字符串的Object对象 * Retuen : JSON字符串 * Author : 博客园-依旧淡然 */ public static String createJsonString(Object value) { Gson gson = new Gson(); String string = gson.toJson(value); return string; } } 可以看到,这个方法的具体实现非常简单,首先创建一个Gson对象,然后通过调用Gson对象的toJson()方法,将传进来的value(任意的Java对象)转换成JSON字符串即可。 /** Function : 获取Person对象列表* Author : 博客园-依旧淡然*/public List<Person> getListPerson() { List<Person> list = new ArrayList<Person>(); Person person = new Person(, "jack", ); Person person = new Person(, "rose", ); Person person = new Person(, "bob", ); list.add(person); list.add(person); list.add(person); return list;} 在该方法中,我们向List列表中加入了3个Person对象,每个Person对象具有id(int)、name(String)和age(int)三个属性。public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setContentType("text/html;charset=utf-"); request.setCharacterEncoding("utf-"); response.setCharacterEncoding("utf-"); PrintWriter out = response.getWriter(); List<Person> listPerson = jsonService.getListPerson(); String str = null; String action_flag = request.getParameter("action_flag"); if(action_flag.equals("persons") {str = JsonTools.createJsonString(listPerson); } out.println(str); out.flush(); out.close();} 在该方法中,我们通过调用JsonService类中的getListPerson()方法获得了Person对象列表listPerson,并将其传入JsonTools.createJsonString()方法中,生成了Person对象列表的JSON数据。将该工程发布到Tomcat上,使用浏览器访问该Web工程,可以看到如图1所示的界面,Person对象列表被成功的转化成了JSON数据。
图1 生成的JSON数据
3.在客户端解析JSON数据
在Android工程中,我们可以通过HttpURLConnection接口访问图1所示的URL来获得服务器上的JSON数据。
得到JSON数据之后,便可以通过使用前面提到的fromJson()方法,将图1 所示的JSON数据还原成对应的Person对象列表了。当然了,因为这里使用到了GSON,同样需要向Android工程中导入gson-2.2.1.jar包。具体的实现方法如下。
/** Function : 解析JSON数据,还原成Person对象列表* Param: jsonString 从服务器获得的Json数据* Retuen : Person对象列表* Author : 博客园-依旧淡然*/public static List<Person> getListPerson(String jsonString) { List<Person> list = new ArrayList<Person>(); Gson gson = new Gson(); list = gson.fromJson(jsonString, new TypeToken<List<Person>>(){}.getType()); return list;} 可以看到,使用GSON解析JSON数据的代码实现也非常简单。其中,TypeToken是GSON提供的数据类型转换器,支持多种数据集合类型转换,其反射机制可以实现将解析出来的Java对象映射到对应的数据集合中。 
图2 运行结果
以上内容是小编给大家分享的Android学习笔记45之gson解析json的全部叙述,希望大家喜欢。