問題のFastJSONを解決するデシリアライズのために

fastjsonデフォルトでは、シリアライズシリアライズJSONので、シーケンス内のフィールドのアルファベット順にクラスで定義されたフィールドの順序でデータ矛盾のフィールドの順序アウトされます。スピードのデフォルトのアルファベット順では速くなりますが、時には我々は、アルファベット順にシリアル化する必要はありません。

今カスタム直列化順序をサポートするために、いくつかの方法を提供しています。

  1. 自分の照合を設定し、照合は注文のJSONTypeによって指定されます。
    // 设置排序规则
    @JSONType(orders={"user_name","passwd"})
    public class LoginBean {
    // 设置别名user_name
    	@JSONField(name="user_name")
    	private String userName;	// 账户
    	private String passwd;	// 密码
    }
    
  2. 順序を指定する序のJSONFieldでは、この機能は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;
    }
    

世間の注目のコード番号を掃引するためにようこそ、より良いコミュニケーション
世間の注目のコード番号を掃引するためにようこそ、より良いコミュニケーション

公開された115元の記事 ウォン称賛67 ビュー10万+

おすすめ

転載: blog.csdn.net/meifannao789456/article/details/96828656