Totato5749
V2EX  ›  Android

Gson 有没有办法可以介入反序列化的过程?

  •  
  •   Totato5749 · Apr 20, 2017 · 13931 views
    This topic created in 3325 days ago, the information mentioned may be changed or developed.

    比如有个 json:

    { "name":"jack", "birth":1990 }

    一般来说正常的反序列化过程是定义一个 bean ,有 name 与 birth 两个字段,然后使用 Gson 自动反序列化输出对象实例

    然而我现在有一个 bean 有两个字段,分别是 name 和 age

    那么我如何用 Gson 在反序列化的过程中使用我自定义的 bean 并输出对象实例?(也就是自动将 birth 换算成 age )

    12 replies    2017-04-20 18:01:10 +08:00
    twocity
        1
    twocity  
       Apr 20, 2017
    TypeAdapter
    29995270
        2
    29995270  
       Apr 20, 2017
    楼上正解
    feeeeeef
        3
    feeeeeef  
       Apr 20, 2017
    GSON 解析效率比较低,尽量避开不要用
    XhstormR
        4
    XhstormR  
       Apr 20, 2017 via Android
    @feeeeeef 意思是说换个用 fastjson ?
    taowen
        5
    taowen  
       Apr 20, 2017
    推荐 jackson
    wadenash1991
        6
    wadenash1991  
       Apr 20, 2017
    zzzmode
        8
    zzzmode  
       Apr 20, 2017
    用 @SerializedName 的 alternate
    Ervin
        9
    Ervin  
       Apr 20, 2017
    8 楼正解
    29995270
        10
    29995270  
       Apr 20, 2017
    人家是换算啊,不是换名字啊, 用 @SerializedName 没用
    klesh
        11
    klesh  
       Apr 20, 2017 via Android
    这种情形做个 mapping 不是更方便吗?写个中间类型再转换,既简单又通用啊。
    honeycomb
        12
    honeycomb  
       Apr 20, 2017 via Android
    @XhstormR
    Jackson 更好
    有评测认为 gson 的性能差一些
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2687 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 15:42 · PVG 23:42 · LAX 08:42 · JFK 11:42
    ♥ Do have faith in what you're doing.