• 关于Json-lib类库的使用


    前言介绍:

    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<Person> getListPerson(){
    20         List<Person> list=new ArrayList<Person>();
    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<String> getInfo(){
    30         List<String> list=new ArrayList<String>();
    31         list.add("北京");
    32         list.add("上海");
    33         list.add("广州");
    34         return list;
    35     }
    36     
    37     
    38     //得到一个List集合(存放Map类型)
    39     public List<Map<String,Object>> getListPersons(){
    40         List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
    41         
    42         Map<String, Object> map1=new HashMap<String, Object>();
    43         Person person1=new Person(1, "lcw", 20);
    44         map1.put("person1", person1);
    45         
    46         Map<String, Object> map2=new HashMap<String, Object>();
    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     @Override
    41     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     @Test
    15     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     @Test
    23     public void getListPersonJson() {
    24         JsonService jsonService = new JsonService();
    25         List<Person> persons = jsonService.getListPerson();
    26         String info = MakeJson.getJson("persons", persons);
    27         System.out.println(info);
    28 
    29     }
    30 
    31     @Test
    32     public void getListString() {
    33         JsonService jsonService = new JsonService();
    34         List<String> news = jsonService.getInfo();
    35         String info = MakeJson.getJson("info", news);
    36         System.out.println(info);
    37     }
    38     
    39     @Test
    40     public void getListPersonsJson() {
    41         JsonService jsonService = new JsonService();
    42         List<Map<String,Object>> 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的使用,可以看下这个简要笔记:《Gson简要使用笔记

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

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

  • 相关阅读:
    Spring ContextLoaderListener
    判断整数是否是对称数
    jstl缺包时的报错
    Spring初始化日志
    C# 网络编程之最简单浏览器实现
    Java实现 蓝桥杯 算法训练 Anagrams问题
    Java实现 蓝桥杯 算法训练 出现次数最多的整数
    Java实现 蓝桥杯 算法训练 出现次数最多的整数
    Java实现 蓝桥杯 算法训练 字串统计
    Java实现 蓝桥杯 算法训练 字串统计
  • 原文地址:https://www.cnblogs.com/lichenwei/p/3986233.html
Copyright © 2020-2023  润新知