• json-lib使用笔记


    今天再来记录一款生成JSON的工具——json-lib,它比较与我之前使用的FastJSON来说,使用都是很简单的,但是要使用json-lib要需要的jar包可真不少,所需要的依赖jar有八九个之多,就这一点来说还是使用FastJSON较为方便

    json-lib需要的最全jar:

    commons-beanutils.jar 

    commons-collections.jar

    commons-lang.jar

    commons-logging.jar

    ezmorph.jar

    json-lib-2.3-jdk15.jar

    xom.jar

    oro.jar

    groovy-all.jar

    junit.jar

    只是用其主要功能需要的jar:

    commons-beanutils.jar 

    commons-collections.jar

    commons-lang.jar

    commons-logging.jar

    ezmorph.jar

    json-lib-2.3-jdk15.jar

    xom.jar

     

    json-lib中的核心类

    在json-lib中只有两个核心类:

      JSONObject

      JSONArray

    开始使用

    同样我们这里先准备一个JavaBean:

    Person.java :

    public class Person {
        private String name;
        
        private int age;
        
        private String sex;
    
        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;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public Person(String name, int age, String sex) {
            super();
            this.name = name;
            this.age = age;
            this.sex = sex;
        }
       
    }

    JSONObject类的使用:

    直接new出JSONObject,就可以使用其方法:比如put()方法添加数据,toString()变成String 等等

        //普通使用,类似使用map
        @Test
        public void fun1(){
            JSONObject jsonObject=new JSONObject();
            jsonObject.put("name", "zhangshan");
            jsonObject.put("age", 21);
            jsonObject.put("sex", "男");
            System.out.println(jsonObject.toString());
        }

    这就是没有使用JavaBean的时候直接添加属性与值,类似于map的使用

    显示的数据格式:

    {"name":"zhangshan","age":21,"sex":"男"}

    如果使用JavaBean,就可以使用JSONObject的fromObject()(静态方法)方法

        //将一个JavaBean转换为JSON
        @Test
        public void fun2(){
            Person person=new Person("lz", 21, "男");
            JSONObject json = JSONObject.fromObject(person);
            System.out.println(json.toString());
        }

    使用JavaBean的方式,最为规范最为常用

     显示的数据格式:

    {"age":21,"name":"lz","sex":"男"}

    JSONArray类的使用

     根据名字就可以猜到是处理数组/集合的类,也是先new出来该对象,然后添加数据就和list的使用较为类似

        //以集合的方式生成JSON
        @Test
        public void fun3(){
            Person person1=new Person("lz", 21, "男");
            Person person2=new Person("xx", 21, "女");
            JSONArray list=new JSONArray();
            list.add(person1);
            list.add(person2);
            System.out.println(list.toString());
        }

    不存在集合的时候,将数据以数组形式生成JOSN

    显示的数据格式:

    [{"age":21,"name":"lz","sex":"男"},{"age":21,"name":"xx","sex":"女"}]
        //原本就有一个集合,生成JSON格式
        @Test
        public void fun4(){
            Person person1=new Person("lz", 21, "男");
            Person person2=new Person("xx", 21, "女");
            List<Person> list=new ArrayList<Person>();
            list.add(person1);
            list.add(person2);
            
            System.out.println(JSONArray.fromObject(list).toString());
        }

    原本就有一个集合,直接使用JSONArray.fromObject()方法即可

     显示的数据格式:

    [{"age":21,"name":"lz","sex":"男"},{"age":21,"name":"xx","sex":"女"}]

    JS解释服务器发送过来的JSON字符串

    服务器发送过来JSON字符串后,客户端需要对其进行解析。这时客户端需要使用eval()方法对JSON字符串进行执行!但要注意,eval()方法在执行JSON时,必须把JSON字符串使用一对圆括号括起来

    var json = "{"name":"zhangSan", "age":"18", "sex":"male"}";                               //手工写一段JSON数据
    var person = eval("(" + json + ")");     //解析JSON为一个对象
    alert(person.name + ", " + person.age + ", " + person.sex);

     当然使用JQuery解析更为方便

    Maven中的依赖信息

    <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
    <dependency>
        <groupId>net.sf.json-lib</groupId>
        <artifactId>json-lib</artifactId>
        <classifier>jdk15</classifier>
        <version>2.4</version>
    </dependency>

    json-lib的依赖必须添加classifier节点,不然会下载不到

  • 相关阅读:
    C#打造51CTO自动签到服务领取无忧币之开篇
    Windows8开发实战之文本布局
    设计模式之抽像工厂
    PDM只显示表名称不显示列表名称
    JS 判断中英文字符长度
    C#操作剪贴板实现复制粘贴
    Chrome控制台设置浏览器Cookie
    通过Mysql查询分析器 建库建表语句
    推荐两个VS开发工具插件
    C#经典机试题(猫叫)
  • 原文地址:https://www.cnblogs.com/lz2017/p/7109540.html
Copyright © 2020-2023  润新知