关于Json-lib类库的使用 Gson简要使用笔记
前言介绍: json-lib包是一个Java类库,它可以将Java对象(包括:beans,maps,collections,java arrays ,xml等)和JSON互相转换。 与此相同的是谷歌也推出了一个类库叫Gson,它们能做到的效果都是一样的,今天就先不讲了。 ? 准备工作: 首先我们需要去下载json-lib的jar包,并导入工程 ? 由于使用方法很简单,这里就直接上代码了 ? 1、首先写一个json的工具类,传入2参数,1为json的标示符(自定义),2为需要转换成json字符串格式的对象 1 package com.lcw.json.util; 2 3 import net.sf.json.JSONObject; 4 5 public class MakeJson { 6 7 /** 8 * 9 * @param key json的标示符 10 value json内容(多种类型,类类型,字符串,List集合等) 11 @return 返回一个json表达式 12 */ 13 static String getJson(String key,Object value){ 14 JSONObject jsonObject=new JSONObject(); 15 jsonObject.put(key,value);//给jsonobject对象赋值 16 String info=jsonObject.toString(); 17 return info; 18 } 19 20 } ? 2、提供一个数据源类 com.lcw.json.service; java.util.ArrayList; 4 java.util.HashMap; java.util.List; 6 java.util.Map; 7 com.lcw.json.vo.Person; 9 JsonService { 11 12 得到一个Person对象 public Person getPerson(){ 14 Person person=new Person(1,"tuzi",22);实例化一个Person对象 15 person; 16 17 18 得到一个List集合(存放Person类型) 19 public List<Person> getListPerson(){ 20 List<Person> list=new ArrayList<Person>(); 21 Person person1=); 22 Person person2=new Person(2,2223 list.add(person1); 24 list.add(person2); 25 list; 26 27 28 得到一个List集合(存放String类型) 29 public List<String> getInfo(){ 30 List<String> list=new ArrayList<String>31 list.add("北京"32 list.add("上海"33 list.add("广州"34 35 36 37 38 得到一个List集合(存放Map类型) 39 public List<Map<String,Object>> getListPersons(){ 40 List<Map<String,Object>> list=new ArrayList<Map<String,1)">41 42 Map<String,Object> map1=new HashMap<String,Object>43 Person person1=44 map1.put("person1",person1); 45 46 Map<String,Object> map2=47 Person person2=48 map2.put("person2"49 50 list.add(map1); 51 list.add(map2); 52 53 54 55 56 57 58 } ? 3、实体类 com.lcw.json.vo; Person { 5 private int id; 6 private String name; age; 8 9 public Person(int id,String name, age) { 10 super11 this.id =12 this.name = name; 13 this.age =14 15 16 getId() { 20 void setId( id) { 21 22 23 24 String getname() { 26 27 void setname(String name) { 29 30 31 32 getAge() { 33 34 35 36 void setAge(37 38 39 40 @Override 41 String toString() { 42 return "Person [age=" + age + ",id=" + id + ",name=" + name + "]"; 43 44 45 } ? 4、测试类 com.lcw.json.test; 5 org.junit.Test; com.lcw.json.service.JsonService; com.lcw.json.util.MakeJson; 11 12 JsonTest { 13 @Test 15 getPersonJson() { 16 JsonService jsonService = JsonService(); 17 Person p1 = jsonService.getPerson(); 18 String info = MakeJson.getJson("person"19 System.out.println(info); 20 21 23 getListPersonJson() { 24 JsonService jsonService = 25 List<Person> persons = jsonService.getListPerson(); 26 String info = MakeJson.getJson("persons"28 29 30 31 getListString() { 33 JsonService jsonService = 34 List<String> news = jsonService.getInfo(); 35 String info = MakeJson.getJson("info"36 37 38 39 40 getListPersonsJson() { 41 JsonService jsonService = 42 List<Map<String,Object>> persons = jsonService.getListPersons(); 43 String info = MakeJson.getJson("persons"44 45 46 47 48 49 } ? 上面是4个单元测试类,代码很简单,就不再做文字解释了,看下运行效果图: ? ? ? ? 接着来顺带小提下关于谷歌提供的类库:Gson 首先还是一样,需要先导入想对应的jar包 ? 我们只需要去修改文章上面提供的工具类:(少了key标示符) package com.lcw.json.util; import com.google.gson.Gson; /** * @param value json内容(多种类型,类类型,字符串,List集合等) * @return 返回一个json表达式 11 String getJson(Object value){ 13 Gson gson= Gson(); 14 String info=gson.toJson(value);为json设置一个数据源,这个类库是自动转换成json格式,并返回一个json字符格式 17 18 } ? 关于Gson的使用,可以看下这个简要笔记:《Gson简要使用笔记》 ? ? 如果想做成服务端供远程调用,把这些数据打印输出到网页就可以了。 ?^_^ 下篇文章讲解从服务端获取到json数据,在Android客户端的解析。 (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |