FastJson

1.引入依赖

 <dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>x.x.x</version>
 </dependency>

2. @JSONField 介绍

2.1内部实现

 public @interface JSONField {
     // 配置序列化和反序列化的顺序,1.1.42版本之后才支持
     int ordinal() default 0;
 ​
      // 指定字段的名称
     String name() default "";
 ​
     // 指定字段的格式,对日期格式有用
     String format() default "";
 ​
     // 是否序列化
     boolean serialize() default true;
 ​
     // 是否反序列化
     boolean deserialize() default true;
 }

 

2.2使用

注解@JSONField,一般作用在get/set方法上面,常用的使用场景有下面三个:

  • 修改和json字符串的字段映射【name】 -->就是指字段序列化后在json字符串的键的名称

  • 格式化数据【format】

  • 过滤掉不需要序列化的字段【serialize】

2.2.1修改字段映射

   private Integer aid;
   // 实体类序列化为json字符串的时候,此类的aid字段,序列化为json中的testid字段
   @JSONField(name="testid") 
   public Integer getAid() {
       return aid;
   }
   // json字符串解析为类实体的时候,json中的id字段,写入此类的aid字段
   @JSONField(name="id")
   public void setAid(Integer aid) {
       this.aid = aid;
   }

2.2.2格式化

  public class A {
       // 配置date序列化和反序列使用yyyyMMdd日期格式
       @JSONField(format="yyyyMMdd")
       public Date date;
  }

2.2.3过滤不需要序列化的字段

   @JSONField(serialize = false)
   public Integer getProgress() {
       return progress;
   }

3.java对象转json

Fastjson将java对象序列化为JSON字符串,fastjson提供了一个最简单的入口

 public abstract class JSON {
     public static String toJSONString(Object object); //静态方法
 }
eg:

 Model model = new Model();
 model.id = 1001;
 ​
 String json = JSON.toJSONString(model);

4.JSON串转对象

JSON.parseobject()

简单用例:

  UserGroup group2 = JSON.parseobject(jsonString, UserGroup.class); 
    //第一个参数是json字符串,第二个参数是待转成对象的类

 

5.JSON串转对象数组

JSON.parseArray()

    // JSON串转对象数组  
 List<User> users2 = JSON.parseArray(jsonString2, User.class);  

6.java获取json中某个字段

import com.alibaba.fastjson.JSONObject;
public class JsonTest {
    
    public static void main(String[] args) {
    
        // json串(以自己的为准)
        String str = "{"id":"75","shoppingCartItemList":[{"id":"407","num":"10"}]}";
        JSONObject jsonObject = JSONObject.parseObject(str);
        // 获取到key为shoppingCartItemList的值
        String r = jsonObject.getString("shoppingCartItemList");
        System.out.println(r);
    }
}

7.JsonObject

JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构),可以使用put方法给json对象添加元素。JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。

7.1 JSON字符串转换成JSON对象

String studentString = "{\"id\":1,\"age\":2,\"name\":\"zhang\"}";

//JSON字符串转换成JSON对象
JSONObject jsonObject1 = JSONObject.parseObject(studentString);

System.out.println(jsonObject1);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
FastjsonFastjson2都是JSON库,用于处理JSON格式的数据。 Fastjson2是Fastjson项目的重要升级,旨在为未来十年提供高性能的JSON库。相比于原来的FastjsonFastjson2在性能上有了很大的提升,并且更加安全。它完全删除了autoType白名单,提升了安全性。 在使用上,导入Fastjson2的依赖后,与原来的Fastjson在代码上基本相同。唯一的区别是在Fastjson2中,将`jsonArray.toJavaList`方法转变为`jsonArray.toList`。 总结来说,FastjsonFastjson2都是用于处理JSON数据的库,但Fastjson2是Fastjson的升级版本,提供了更高的性能和更好的安全性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [fastjson2 介绍及使用](https://blog.csdn.net/qq_33697094/article/details/128114939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Fastjson2你开始使用了吗?来看看源码解析](https://blog.csdn.net/chenxuyuana/article/details/125581066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值