首页 > 其他分享 >json总结 fastjson和jackson 以及typereference(未写完)

json总结 fastjson和jackson 以及typereference(未写完)

时间:2024-03-14 18:57:38浏览次数:22  
标签:fastjson Map jackson 未写 JSON private json class

fastjson跟JackJson有很大区别,为了防止搞混,这里进行总结

因为会涉及到流水线的门禁,所以这里给出比较优质的解决方案

 

两个测试类代码如下:

@Data
public class Student {
    private String name;

    private Integer age;

    private Teacher teacher;
}

 

@Data
public class Teacher {
    private String name;

    private Integer age;
}

 

fastjson的一系列用法

json转类

如果json里面为空,也会正常转换

直接使用JSON.parseObject(json, Student.class);

类转json

String jsonString = JSON.toJSONString(student);

JSON转map

Map<String, Object> map = JSON.parseObject(jsonString, Map.class);

但是这么写会过不了流水线门禁,我们通常包一层,注意这里TypeReference最好使用fastjson的

private static final TypeReference<Map<String, Object>> typeReference = new TypeReference<Map<String, Object>>() {};

Map<String, Object> map3 = JSON.parseObject(jsonString, typeReference);

尤其注意,这里类Student中的类Teacher变成了JSONObject

 

jackson

类转Map

这跟fastjson不同,少了一步

ObjectMapper objectMapper = new ObjectMapper();

Map<String, Object> map2 = objectMapper.convertValue(student, Map.class);

要注意这里的map里面的内容全是linkedhashMap

 

标签:fastjson,Map,jackson,未写,JSON,private,json,class
From: https://www.cnblogs.com/immersed-in-the-deep-sea/p/18073691

相关文章

  • fastjson改造
    背景fastjson太过于侧重性能,对于部分高级特性支持不够,而且部分自定义特性完全偏离了json和js规范导致和其他框架不兼容;fastjson文档缺失较多,部分Feature甚至没有文档,而且代码缺少注释较为晦涩;fastjson的CVEbug监测较弱,很多CVE数据库网站上有关fastjson的CVE寥寥无几,例如近......
  • 2024HVV行动-进军蓝中研判(log4j2、fastjson、Struts2、Shiro)
    1、log4j2特征:恶意请求中包含JNDI协议地址,如"ldap://"、"rmi://"等,被log4j2解析为JNDI查找。原理:在日志输出中,未对字符进行严格的过滤,执行了JNDI协议加载的远程恶意脚本,从而造成远程代码执行。影响:严重的RCE,2.0≤ApacheLog4j2<2.15.0-rc2攻击字段:${jndi......
  • Jackson Redisson反序列化问题
    异常信息com.fasterxml.jackson.databind.exc.MismatchedInputException:Cannotconstructinstanceof`java.util.concurrent.atomic.AtomicInteger`(althoughatleastoneCreatorexists):noint/Int-argumentconstructor/factorymethodtodeserializefromNumberva......
  • 蓝帽杯2022初赛-fastjson复现
    趁热打铁,直接复现一波蓝帽杯2022初赛的一道fastjson。简简单单写了个Dockerfile和docker-compose.yml,网上能找到jar包链接,然后启动服务:importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.parser.ParserConfig;importjava.util.Objects;importjava.util.re......
  • fastjson-RCE
    fastjson是一个有阿里开发的一个开源Java类库,可以将Java对象转换为JSON格式(序列化),当然它也可以将JSON字符串转换为Java对象(反序列化)。Fastjson可以操作任何Java对象,即使是一些预先存在的没有源码的对象(这就是漏洞来源,下文会解释)。使用比较广泛。 fastjson序列......
  • FastJson使用和案例
    FastJson使用和案例导入依赖<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.73</version></dependency>使用案例1.新建Perosn类,......
  • FastJSON学习
    第一节:JSON数据格式回顾 JSON的数组格式:运行:结果:  JSON的对象格式:运行: 结果: ......
  • jackson序列化问题
    在对对象进行jackson序列化的时候,有时候会出现序列化后的变量名称大小写错误的情况。测试的实体类TestEntity2如下:public class TestEntity2 {    private String aBcd;    private String qWER;    private String qWERty;    private String qWERty......
  • Jackson序列化clob数据
    1.情景展示在java当中,有时候我们不得不用jdbc来读取数据库数据,而不是通过mybatis框架。这样就遇到一个问题:如果表字段的数据类型为clob时,使用springboot默认进行序列化时,会报错。如何解决?2.具体分析在springboot中,其默认的序列化类时Jackson。既然Jackson的默认序列化规......
  • 第17天:信息打点-语言框架&开发组件&FastJson&Shiro&Log4j&SpringBoot等
    框架:简单代码的一个整合库,如果使用框架就只需要学习使用框架调用即可如:文件上传功能是需要很多代码来实现的,框架把这个代码进行封封装,调用即可影响:如果采用框架开发,代码的安全性是取决于框架的过滤机制 #Python-开发框架-Django&FlaskDjango1、识别插件2、Set-Cookie:expi......