随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。
posts - 398,comments - 0,views - 13万

简介:

Json-lib 在通过字符串解析每一个 Json 对象时,会对当前解析位置到字符串末尾进行 substring 操作,由于 JDK7 及以上的 substring 会完整拷贝截取后的内容,所以当遇到较大的 Json 数据并且含有较多对象时,会进行大量的字符数组复制操作,导致了大量的 CPU 和内存消耗,甚至严重的 Full GC 问题。

仅限学习使用。

这里需要用到json-lib的jar包和其依赖的包:

核心类:

  - JSONObject  -- Map

public final class JSONObject 
extends AbstractJSON
implements JSON, Map, Comparable

  - JSONArray    -- List

public final class JSONArray 
extends AbstractJSON
implements JSON, List, Comparable

创建一个测试单元:

复制代码
import org.junit.Test;
import net.sf.json.JSONObject;
public class Demo1 {
    /**
     * 演示json-lib小工具
     */
    
    @Test
    public void fun1() {
        JSONObject jo = new JSONObject();
        jo.put("name","zhangsan");
        jo.put("age", 18);
        jo.put("sex", "man");
        
        String s = jo.toString();
        System.out.print(s);
    }
}
复制代码

输出结果:

使用JSONObject和JSONArray类中的方法:

 

 

复制代码
package cn;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class Demo1 {
    /**
     * 演示json-lib小工具
     */

    @Test
    public void fun1() {
        JSONObject jo = new JSONObject();
        jo.put("name", "zhangsan");
        jo.put("age", 18);
        jo.put("sex", "man");

        String s = jo.toString();
        System.out.print(s);
    }

    /**
     * 对象转换为json串
     */
    @Test
    public void fun2() {
        // 实例化一个Person对象
        Person p = new Person("lisi", 21);
        // 把对象转换为JSONObject 类型
        JSONObject jo = JSONObject.fromObject(p);
        System.out.print(jo.toString());
    }
    /**
     * JSONArray多个对象转换
     */
    @Test
    public void fun3() {
        Person p1 = new Person("王五",12);
        Person p2 = new Person("欧赔",78);
        
        JSONArray list = new JSONArray();
        list.add(p1);
        list.add(p2);
        System.out.print(list.toString());
    }
    /**
     * 已经存在一个List,将这个List转换为Json
     */
    @Test
    public void fun4() {
        Person p1 = new Person("王五",12);
        Person p2 = new Person("欧赔",78);
        List<Person> list = new ArrayList<Person>();
        list.add(p2);
        list.add(p1);
        
        System.out.print(JSONArray.fromObject(list).toString());
    }
}
复制代码

运行结果:

{"name":"zhangsan","age":18,"sex":"man"}
{"age":21,"name":"lisi"}
[{"age":12,"name":"王五"},{"age":78,"name":"欧赔"}]
[{"age":78,"name":"欧赔"},{"age":12,"name":"王五"}]

 

posted on   时间完全不够用啊  阅读(113)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示