解決FastJSON反序列化順序問題

fastjson默認在序列化時是按照字段的字母順序進行序列化的,這樣序列化出來的Json數據中字段的順序就與類中定義的字段順序不一致了。默認按字母排序序列化的速度會快一些,可是有時候咱們並不但願按照字母順序進行序列化。json

如今提供幾種方式來支持自定義序列化順序。bash

  1. 本身設置排序規則,經過JSONType的orders來指定排序規則:
    // 設置排序規則
    @JSONType(orders={"user_name","passwd"})
    public class LoginBean {
    // 設置別名user_name
    	@JSONField(name="user_name")
    	private String userName;	// 帳戶
    	private String passwd;	// 密碼
    }
    複製代碼
  2. 經過JSONField的ordinal來指定順序,這個特性須要1.1.42以上版本
    public static class VO {
        @JSONField(ordinal = 3)
        private int f0;
    
        @JSONField(ordinal = 2)
        private int f1;
    
        @JSONField(ordinal = 1)
        private int f2;
    }
    複製代碼
  3. 指定序列化的排序方式,使用Feature.OrderedField按照字段排序
    JSON.parseObject("...", Feature.OrderedField)
    複製代碼
  4. 官方提供的方式是配置JSONType.alphabetic的值爲false,可是好像不太好用
    @JSONType(alphabetic = false)
    public static class B {
        public int f2;
        public int f1;
        public int f0;
    }
    複製代碼

歡迎掃碼關注公衆號,更好的交流 spa

歡迎掃碼關注公衆號,更好的交流
相關文章
相關標籤/搜索