fastjson

java解析多层嵌套json字符串

一个人想着一个人 提交于 2021-02-01 08:51:28
1. com.alibaba.fastjson jar包地址:https://www.mvnjar.com/com.alibaba/fastjson/jar.html 2.多层解析 java分别解析下面两个json字符串 package jansonDemo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class TestJSON { /** * JSON实际上也是键值对("key":"value") * key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null) * value如果是字符串,用jsonobj.getString("key")获取 * value如果是数 字,用jsonobj.getIntValue("key"),jsonobj.getFloatValue("key"),jsonobj.getInteger("key")等基本数据类型及其包装类的方法获取 * value如果是布尔值,用jsonobj.getBoolean("key"),jsonobj.getBooleanValue("key")获取 *

SpringMVC Json自定义序列化和反序列化

我的梦境 提交于 2021-01-28 21:40:44
需求背景 需求一:SpringMVC构建的微服务系统,数据库对日期的存储是Long类型的时间戳,前端之前是默认使用Long类型时间,现在前端框架改动,要求后端响应数据时,Long类型的时间自动变成标准时间格式(yyyy-MM-dd HH:mm:ss)。 涉及到这个转换的范围挺大,所有的实体表都有创建时间createTime和修改时间updateTime,目前的主要诉求也是针对这两个字段,并且在实体详情数据和列表数据都存在,需要一个统一的方法,对这两个字段进行处理。 需求二:前端请求上传的JSON报文,String类型的内容,可能会出现前后有空格的现象,如果前端框架未对此问题进行处理,后端收到的JSON请求反序列化为对象时,就会出现String类型的值,前后有空格,现需要一个统一的处理方法,对接收的String类型属性执行trim方法。 解决方案 SpringMVC默认的JSON框架为jackson,也可以使用fastjson。 jackson框架 自定义序列化 如果项目使用jackson框架做json序列化,推荐的方案是使用@JsonSerialize注解,示例代码如下: @JsonSerialize(using = CustomDateSerializer.class) private Long createTime; @JsonSerialize(using =

springboot+vue实现文件上传

最后都变了- 提交于 2021-01-23 09:09:02
https://blog.csdn.net/mqingo/article/details/84869841 技术: 后端:springboot 前端框架:vue 数据库:mysql pom.xml: <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> controller: @RestController @RequestMapping("/yfjs") @CrossOrigin public class YFJSController { @Autowired private YFJSService yfjsService; @Autowired private FJSCService fjscService; private String url; @RequestMapping(value="/file",produces=

fastjson序列化和反序列化报com.alibaba.fastjson.JSONException: autoType is not support异常问题,解决方案整合

我怕爱的太早我们不能终老 提交于 2021-01-22 17:43:41
fastjson序列化和反序列化报com.alibaba.fastjson.JSONException: autoType is not support异常问题,解决方案整合 参考文章: (1)fastjson序列化和反序列化报com.alibaba.fastjson.JSONException: autoType is not support异常问题,解决方案整合 (2)https://www.cnblogs.com/lpob/p/11853592.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/3797416/blog/4920515

MAVEN依赖的优先原则

房东的猫 提交于 2021-01-20 19:55:21
MAVEN依赖的优先原则 maven依赖的优先原则 1.依赖最短路径优先原则 一个项目Demo依赖了两个jar包,其中A-B-C-X(1.0) , A-D-X(2.0)。由于X(2.0)路径最短,所以项目使用的是X(2.0)。 2.pom文件中申明顺序优先 如果A-B-X(1.0) ,A-C-X(2.0) 这样的路径长度一样怎么办呢?这样的情况下,maven会根据pom文件声明的顺序加载,如果先声明了B,后声明了C,那就最后的依赖就会是X(1.0)。 3. 覆盖优先原则 子pom内声明的优先于父pom中的依赖。 实际使用 背景:FastJson远程代码执行漏洞,攻击者可以通过提交精心构造的JSON数据实现远程代码执行,造成OOM,项目中使用的fastJson版本1.2.16过低 存在该漏洞,现升级为1.2.56 图1.png 图2.png 通过上面图一,图二可以看出实际项目fastjson属于被动依赖,项目没有主动引入。按照依赖的优先原则, a-(durian-conf-client)-(fastjson1.2.16) a-(rf-login)-(fastjson1.2.44) durian-conf-client在rf-login之前申明 所以最终项目使用的是fastjson1.2.16。 最终项目申明fastjson 1.2.56。 来源: oschina 链接: https:

握草,这些研发事故30%我都干过!

倾然丶 夕夏残阳落幕 提交于 2021-01-13 16:59:08
持续坚持原创输出,点击蓝字关注我吧 作者:小傅哥 博客:https://bugstack.cn ❝ 沉淀、分享、成长,让自己和他人都能有所收获!😜 ❞ 目录 一、前言 二、研发事故 1. 功能流程设计类 2. 技术方案实现类 3. 技术服务使用类 4. 后门违规操作类 5. 运营操作失误类 三、总结 四、系列推荐 一、前言 你的代码出过事故吗? 老人言:常在河边走哪有不湿鞋。只要你在做着编程开发的工作就一定会遇到事故,或大或小而已。 当然可能有一部分研发同学,在相对传统的行业或者做着用户体量较小的业务等,很难遇到让人出名的事故,多数都是一些线上的小bug,修复了也就没人问了。 但如果你在较大型的互联网公司,那么你负责的开发的系统功能,可能面对的就是成百万、上千万级别用户体量。哪怕你有一点小bug也会被迅速放大,造成大批量的客诉以及更严重的资金损失风险。就像: 拼多多“薅羊毛”事件,朋友圈疯狂转发。 淘宝昨现重大线上bug,S1级事故,疑似程序员故意埋雷。 您使用的程序是内测版本,将于当地时间 2020-03-28 到期,到期后将无法使用,请尽快下载最新版本。 GitHub忘记续订SSL证书导致网站排版混乱,部分网站不能正常打开。 类似这样事故的出现,可能是因为技术流程、方案实现、技术服务以及运营配置等等原因产生的。综合可以概括为以下几点: 功能流程设计类

json 的使用 Java对象转json

和自甴很熟 提交于 2021-01-13 07:17:00
1、 jsonlib:个人感觉最麻烦的一个需要导入的包也多,代码也相对多一些。 2、Gson:google的 3、FastJson:阿里巴巴的,个人觉得这个比较好,而且据说这个也是性能最好一个。 下面就贴出三种写法的代码,读者可以任选其一去使用。关于demo里面所使用的jar包,可以自行去下载,也可以加我QQ我给你:1140459171 Jsonlib:package json; import java .util .ArrayList ; import java .util .List ; import net .sf .json .JSONArray ; import user .User ; public class Jsonlib { public static void main(String[] args) { User user1 = new User() ; user1 .setUsername( "111") ; user1 .setPassword( "111") ; User user2 = new User() ; user2 .setUsername( "222") ; user2 .setPassword( "222") ; List<User> lists = new ArrayList<User>() ; lists .add(user1) ;

Java使用fastjson List<> 转Json , Json 转List<>

好久不见. 提交于 2021-01-13 07:11:24
SerializeWriter:相当于StringBuffer JSONArray:相当于List<Object> JSONObject:相当于Map<String, Object> JSON反序列化没有真正数组,本质类型都是List<Object> 比如说List<Strudent> List转Json List<Student> students = new ArrayList(); String str = JSON.toJSONString(students); // List转json Json 转List 方法一 String json = "" ; //获取的Json数据 List<Student> students = JSON.parseObject(json, new TypeReference< List<Student>>(){}); // Json 转List Json 转List方法二 List<Student> students = JSON.parseArray(json,Student. class); Student 对象要实现Serializable接口 import java.io.Serializable; public class Student implements Serializable { 来源: oschina 链接:

爱奇艺SOAR探索与实践

不羁岁月 提交于 2021-01-12 20:32:29
SOAR 全称 Security Orchestration, Automation and Response,即安全编排自动化与响应,最早由Gartner在2015年提出。 安全团队注重威胁检测,往往购买了各种安全设备,同时自研安全产品,试图通过增加检测功能,追求更小的MTTD(平均威胁检测时间),以及更大的威胁检出率。但面对外部日新月异的攻击手法,频频爆出的高危漏洞,不断增加的安全服务,企业安全运营面临巨大的压力,一方面出现安全人力不足,另一方面,对安全运营的专业能力要求过高。这个时候,急需一个系统来提升安全运营的标准化和自动化水平。 SOAR提出了通过事件智能分析、事件编排、安全工具整合的方式,加快事件的快速预警和响应,从“人到安全工具”交互转变为“机器到安全工具”交互,应急响应转换为持续自动化响应,从而降低人工成本、降低MTTR、提高安全运营生产力。近来SOAR产品备受关注,目前国内比较知名的厂商有雾帜智能,绿盟,盛华安,360等,阿里云-云安全中心也上线了SOAR相关功能,如自动化溯源等。国外有Rapid7/Splunk也很早在SOAR领域开始了布局。 SOAR作为安全编排与自动化,情报和事件响应平台融合的新兴安全解决方案,可以帮助企业在有限的人力下,处置更多的威胁,降低MTTR(平均威胁处置时间)。爱奇艺内部引入SOAR之后,通过开发安全组件拉通各个安全服务