关于Json-lib类库的使用

前言介绍:

json-lib包是一个Java类库,它可以将Java对象(包括:beans,maps,collections,java arrays ,xml等)和JSON互相转换。

与此相同的是谷歌也推出了一个类库叫Gson,它们能做到的效果都是一样的,今天就先不讲了。

准备工作:

首先我们需要去下载json-lib的jar包,并导入工程

关于Json-lib类库的使用

由于使用方法很简单,这里就直接上代码了

1、首先写一个json的工具类,传入2参数,1为json的标示符(自定义),2为需要转换成json字符串格式的对象

 package com.lcw.json.util;

 import net.sf.json.JSONObject;

 public class MakeJson {

     /**
*
* @param key json的标示符
* @param value json内容(多种类型,类类型,字符串,List集合等)
* @return 返回一个json表达式
*/
public static String getJson(String key,Object value){
JSONObject jsonObject=new JSONObject();
jsonObject.put(key, value);//给jsonobject对象赋值
String info=jsonObject.toString();
return info;
} }

2、提供一个数据源类

 package com.lcw.json.service;

 import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import com.lcw.json.vo.Person; public class JsonService { //得到一个Person对象
public Person getPerson(){
Person person=new Person(1, "tuzi", 22);//实例化一个Person对象
return person;
} //得到一个List集合(存放Person类型)
public List<Person> getListPerson(){
List<Person> list=new ArrayList<Person>();
Person person1=new Person(1, "lcw", 20);
Person person2=new Person(2, "tuzi", 22);
list.add(person1);
list.add(person2);
return list; }
//得到一个List集合(存放String类型)
public List<String> getInfo(){
List<String> list=new ArrayList<String>();
list.add("北京");
list.add("上海");
list.add("广州");
return list;
} //得到一个List集合(存放Map类型)
public List<Map<String,Object>> getListPersons(){
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>(); Map<String, Object> map1=new HashMap<String, Object>();
Person person1=new Person(1, "lcw", 20);
map1.put("person1", person1); Map<String, Object> map2=new HashMap<String, Object>();
Person person2=new Person(2, "tuzi", 22);
map2.put("person2", person2); list.add(map1);
list.add(map2); return list; } }

3、实体类

 package com.lcw.json.vo;

 public class Person {

     private int id;
private String name;
private int age; public Person(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
} 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;
} @Override
public String toString() {
return "Person [age=" + age + ", id=" + id + ", name=" + name + "]";
} }

4、测试类

 package com.lcw.json.test;

 import java.util.List;
import java.util.Map; import org.junit.Test; import com.lcw.json.service.JsonService;
import com.lcw.json.util.MakeJson;
import com.lcw.json.vo.Person; public class JsonTest { @Test
public void getPersonJson() {
JsonService jsonService = new JsonService();
Person p1 = jsonService.getPerson();
String info = MakeJson.getJson("person", p1);
System.out.println(info);
} @Test
public void getListPersonJson() {
JsonService jsonService = new JsonService();
List<Person> persons = jsonService.getListPerson();
String info = MakeJson.getJson("persons", persons);
System.out.println(info); } @Test
public void getListString() {
JsonService jsonService = new JsonService();
List<String> news = jsonService.getInfo();
String info = MakeJson.getJson("info", news);
System.out.println(info);
} @Test
public void getListPersonsJson() {
JsonService jsonService = new JsonService();
List<Map<String,Object>> persons = jsonService.getListPersons();
String info = MakeJson.getJson("persons", persons);
System.out.println(info); } }

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

关于Json-lib类库的使用

关于Json-lib类库的使用

关于Json-lib类库的使用

关于Json-lib类库的使用

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

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

关于Json-lib类库的使用

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

 package com.lcw.json.util;

 import com.google.gson.Gson;

 public class MakeJson {

     /**
*
* @param value json内容(多种类型,类类型,字符串,List集合等)
* @return 返回一个json表达式
*/
public static String getJson(Object value){
Gson gson=new Gson();
String info=gson.toJson(value);//为json设置一个数据源,这个类库是自动转换成json格式,并返回一个json字符格式
return info;
} }

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

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

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

上一篇:Spring4自动装配(default-autowire)


下一篇:Python 数据分析Windows环境搭建