博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记录fastjson的使用
阅读量:4182 次
发布时间:2019-05-26

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

一、toJSONString()的应用

源码解析:

public static String toJSONString(Object object) {        return toJSONString(object, emptyFilters);    }

实例应用:

//将list转成json字符串    @Override    public String findTaskVosByTaskId(String taskId) {        List
list = taskMapper.findTaskVosByTaskId(taskId); return JSON.toJSONString(list); } //将对象转成json字符串 @Override public String findById(String taskId) { TaskVo taskVo = taskMapper.findById(taskId); return JSON.toJSONString(taskVo); }

二、parseObject(String text, Class<T> clazz)的应用 也可以把json字符串转为jsonobject

源码解析:

//T 需要实现 Serializable接口(不实现好像也可以)         public static 
T parseObject(String text, Class < T > clazz) { return parseObject(text, clazz); }

实例应用:

//转换为对应的实体类。 public static TaskVo findById(String taskId){        try {            objects = client.invoke("findById", taskId);            String json = (String) objects[0];            return JSON.parseObject(json,TaskVo.class);        } catch (Exception e) {            e.printStackTrace();        }        return null;    }

三、parseArray(String text, Class<T> clazz)的应用

 源码分析:

//需要实现 Serializable接口(不实现好像也可以)	public static 
List
parseArray(String text, Class
clazz) { if (text == null) { return null; } else { DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance()); JSONLexer lexer = parser.lexer; int token = lexer.token(); ArrayList list; if (token == 8) { lexer.nextToken(); list = null; } else if (token == 20 && lexer.isBlankInput()) { list = null; } else { list = new ArrayList(); parser.parseArray(clazz, list); parser.handleResovleTask(list); } parser.close(); return list; } }

实例应用:

public static List
findTaskVosByTaskName(String taskName){ try { objects = client.invoke("findTaskVosByTaskName", taskName); String json = (String) objects[0]; return JSON.parseArray(json,TaskVo.class); } catch (Exception e) { e.printStackTrace(); } return null; }

四、parseArray(String text)与JSONArray(List<Object> list)的应用

源码分析:

//把字符串变成  JSONArray public static JSONArray parseArray(String text) {        if (text == null) {            return null;        } else {            DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance());            JSONLexer lexer = parser.lexer;            JSONArray array;            if (lexer.token() == 8) {                lexer.nextToken();                array = null;            } else if (lexer.token() == 20) {                array = null;            } else {                array = new JSONArray();                parser.parseArray(array);                parser.handleResovleTask(array);            }            parser.close();            return array;        }    }        //把list集合变成JSONArray    public JSONArray(List list) {        this.list = list;    }

实例应用:

public static void main(String[] args) {        List
list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); String json = JSON.toJSONString(list); System.out.println("json = " + json); JSONArray jsonArray = new JSONArray(new ArrayList<>(list)); System.out.println("jsonArray = " + jsonArray); JSONArray array= JSONArray.parseArray(JSON.toJSONString(list)); System.out.println("array = " + array); }

结果显示:

json = ["1","2","3"]jsonArray = ["1","2","3"]array = ["1","2","3"]

五、toString()和toJSONString()的应用

源码分析:

public String toString() {        return this.toJSONString();    }  public String toJSONString() {        SerializeWriter out = new SerializeWriter();        String var2;        try {            (new JSONSerializer(out)).write(this);            var2 = out.toString();        } finally {            out.close();        }        return var2;    }

实例应用:

public static void main(String[] args) {        JSONObject jsonObject = new JSONObject();        jsonObject.put("rowCount", "rowCount");        jsonObject.put("taskVos", "taskVos");        jsonObject.put("resultCount", "resultCount");        System.out.println("jsonObject.toString() = " + jsonObject.toString());        System.out.println("jsonObject.toJSONString() = " + jsonObject.toJSONString());    }

结果显示:

jsonObject.toString() = {"resultCount":"resultCount","taskVos":"taskVos","rowCount":"rowCount"}jsonObject.toJSONString() = {"resultCount":"resultCount","taskVos":"taskVos","rowCount":"rowCount"}

可以看出toString()最终还要调用toJSONString(),建议直接使用toJSONString()。

 

FastJSON 转换保存null值

JSON.toJSONString(jsonObject, SerializerFeature.WriteMapNullValue);

 

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

你可能感兴趣的文章
分布式文件系统FastDFS详解
查看>>
centos7上rabbitmq搭建
查看>>
rabbitmq集成spring的xml配置和java代码
查看>>
RabbitMQ消息确认(发送确认,接收确认)
查看>>
一篇笔记整理JVM工作原理
查看>>
activemq、rabbitmq、kafka原理和比较
查看>>
秒杀系统设计思路和实现方法
查看>>
Redis常见面试题
查看>>
JDK重要包和Java学习方法论
查看>>
网络通讯中的三次握手与四次挥手原理详解
查看>>
IDEA公司真牛逼,发行最适合程序员编程字体~
查看>>
闲鱼 12 块买的软件资源!禁止贩卖赚钱
查看>>
GitHub 开源神器:图片秒变文件
查看>>
公司能不能监控到微信聊天?
查看>>
Pandas函数速查手册(高清版)PDF
查看>>
再见了,Teamviewer!
查看>>
Linux下的编译器
查看>>
为什么调试的时候需要编译选项中添加 -g
查看>>
Linux中的readelf命令
查看>>
Linux下的小程序--进度条
查看>>