赞
踩
JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
Java是面向对象的语言,所以我们更多的在项目中是以对象的形式处理业务的,但是在传输的时候我们却要将对象转换为 JSON 格式便于传输,而且 JSON 格式一般能解析为大多数的对象格式,而不在乎编程语言。
在工作中, 我们不可避免的要使用json字符串, json已经成为我们resultful接口最常使用的数据格式, 相信大家也都不陌生了, 工作中或多或少也是用过的.今天我就是要来说说json数据处理时, 我们使用到的一些坑, 避免自己或者大家以后也落入到这个陷阱中, 特总结出来, 分享给大家, 希望对大家有帮助.
好吧, 我们进入正题, 大家在处理json字符串的时候, 最常使用的包和方法是什么嗯?
阿里官方给的定义是, fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。
你可以通过如下地方下载fastjson:
fastjson最新版本都会发布到maven中央仓库,你可以直接依赖。
dependency> com.alibaba fastjson x.x.x
其中x.x.x是版本号,根据需要使用特定版本,建议使用最新版本。
常用JSON组件FastJson存在远程代码执行漏洞,攻击者可通过精心构建的json报文对目标服务器执行任意命令,从而获得服务器权限。此次爆发的漏洞为以往漏洞中autoType的绕过。
FastJson < 1.2.48
利用该0day漏洞,恶意攻击者可以构造攻击请求绕过FastJSON的黑名单策略。例如,攻击者通过精心构造的请求,远程让服务端执行指定命令(以下示例中成功运行计算器程序)。
Fastjson入口类是 com.alibaba.fastjson.JSON,主要的 API 是 JSON.toJSONString 和 parseObject。
package com.alibaba.fastjson;public abstract class JSON { // Java对象转换为JSON字符串 public static final String toJSONString(Object object); //JSON字符串转换为Java对象 public static final T parseObject(String text, Class clazz, Feature... features);}
序列化:
String jsonString = JSON.toJSONString(obj);
反序列化
VO vo = JSON.parseObject("...", VO.class);
fastjson是目前java语言中最快的json库,比自称最快的jackson速度还要快,第三方独立测试结果看这里:https://github.com/eishay/jvm-serializers/wiki。
自行做性能测试时,需关闭循
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。