博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Json-lib类库的使用
阅读量:7110 次
发布时间:2019-06-28

本文共 4996 字,大约阅读时间需要 16 分钟。

前言介绍:

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      * @param value    json内容(多种类型,类类型,字符串,List集合等)11      * @return    返回一个json表达式12      */13     public 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、提供一个数据源类

1 package com.lcw.json.service; 2  3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 import java.util.Map; 7  8 import com.lcw.json.vo.Person; 9 10 public class JsonService {11     12     //得到一个Person对象13     public Person getPerson(){14         Person person=new Person(1, "tuzi", 22);//实例化一个Person对象15         return person;16     }17     18     //得到一个List集合(存放Person类型)19     public List
getListPerson(){20 List
list=new ArrayList
();21 Person person1=new Person(1, "lcw", 20);22 Person person2=new Person(2, "tuzi", 22);23 list.add(person1);24 list.add(person2);25 return list;26 27 }28 //得到一个List集合(存放String类型)29 public List
getInfo(){30 List
list=new ArrayList
();31 list.add("北京");32 list.add("上海");33 list.add("广州");34 return list;35 }36 37 38 //得到一个List集合(存放Map类型)39 public List
> getListPersons(){40 List
> list=new ArrayList
>();41 42 Map
map1=new HashMap
();43 Person person1=new Person(1, "lcw", 20);44 map1.put("person1", person1);45 46 Map
map2=new HashMap
();47 Person person2=new Person(2, "tuzi", 22);48 map2.put("person2", person2);49 50 list.add(map1);51 list.add(map2);52 53 return list;54 55 }56 57 58 }

 

3、实体类

1 package com.lcw.json.vo; 2  3 public class Person { 4  5     private int id; 6     private String name; 7     private int age; 8  9     public Person(int id, String name, int age) {10         super();11         this.id = id;12         this.name = name;13         this.age = age;14     }15 16     public int getId() {17         return id;18     }19 20     public void setId(int id) {21         this.id = id;22     }23 24     public String getname() {25         return name;26     }27 28     public void setname(String name) {29         this.name = name;30     }31 32     public int getAge() {33         return age;34     }35 36     public void setAge(int age) {37         this.age = age;38     }39 40     @Override41     public String toString() {42         return "Person [age=" + age + ", id=" + id + ", name=" + name + "]";43     }44 45 }

 

4、测试类

1 package com.lcw.json.test; 2  3 import java.util.List; 4 import java.util.Map; 5  6 import org.junit.Test; 7  8 import com.lcw.json.service.JsonService; 9 import com.lcw.json.util.MakeJson;10 import com.lcw.json.vo.Person;11 12 public class JsonTest {13 14     @Test15     public void getPersonJson() {16         JsonService jsonService = new JsonService();17         Person p1 = jsonService.getPerson();18         String info = MakeJson.getJson("person", p1);19         System.out.println(info);20     }21 22     @Test23     public void getListPersonJson() {24         JsonService jsonService = new JsonService();25         List
persons = jsonService.getListPerson();26 String info = MakeJson.getJson("persons", persons);27 System.out.println(info);28 29 }30 31 @Test32 public void getListString() {33 JsonService jsonService = new JsonService();34 List
news = jsonService.getInfo();35 String info = MakeJson.getJson("info", news);36 System.out.println(info);37 }38 39 @Test40 public void getListPersonsJson() {41 JsonService jsonService = new JsonService();42 List
> persons = jsonService.getListPersons();43 String info = MakeJson.getJson("persons", persons);44 System.out.println(info);45 46 }47 48 49 }

 

上面是4个单元测试类,代码很简单,就不再做文字解释了,看下运行效果图:

 

 

 

 

接着来顺带小提下关于谷歌提供的类库:Gson

首先还是一样,需要先导入想对应的jar包

 

我们只需要去修改文章上面提供的工具类:(少了key标示符)

1 package com.lcw.json.util; 2  3 import com.google.gson.Gson; 4  5 public class MakeJson { 6      7     /** 8      *  9      * @param value    json内容(多种类型,类类型,字符串,List集合等)10      * @return    返回一个json表达式11      */12     public static String getJson(Object value){13         Gson gson=new Gson();14         String info=gson.toJson(value);//为json设置一个数据源,这个类库是自动转换成json格式,并返回一个json字符格式15         return info;16     }17 18 }

 

关于Gson的使用,可以看下这个简要笔记:《》

 

 

如果想做成服务端供远程调用,把这些数据打印输出到网页就可以了。  ^_^

下篇文章讲解从服务端获取到json数据,在Android客户端的解析。

转载地址:http://wilhl.baihongyu.com/

你可能感兴趣的文章
WPF 关于圆角的制作
查看>>
MySql(十四):MySql架构设计——可扩展性设计之数据切分
查看>>
Ocelot简易教程(二)之快速开始1
查看>>
思绪:常想一二
查看>>
Flash调用XML文件的方法
查看>>
JSF---->其他标签
查看>>
Add Console Application Program to the MFC Program
查看>>
Oracle中可被并行化执行的SQL操作
查看>>
新的Layout布局系统
查看>>
java链表
查看>>
VC获取操作系统版本和名称
查看>>
禁止复制
查看>>
使用GLSL实现更多数量的局部光照 【转】
查看>>
rundll32命令大全
查看>>
OC 内存管理-02 autorelease 概念 以及用法
查看>>
IPC——匿名管道
查看>>
AsyncSocket长连接棒包装问题解决
查看>>
ios调用dismissViewController的一个小陷阱
查看>>
[Android Pro] static 和 Volatile 的区别
查看>>
深入理解PHP内核(八)变量及数据类型-预定义变量
查看>>