Skip to content
This repository was archived by the owner on Oct 23, 2024. It is now read-only.
This repository was archived by the owner on Oct 23, 2024. It is now read-only.

kotlin,反序列化时,没有属性字段的set方法,不执行。求解决 #1462

@sw4655315

Description

@sw4655315

序列化操作时,想隐藏字段。所以data class里属性设置为serialize =false。

data class ObjectA(
        @JSONField(serialize = false)
        var a:String?=""
){
    fun getB():String? = this.a
    fun setB(v:String){
        this.a = "b"
    }
}

fun testjson3(){
    var a:ObjectA = ObjectA()
    a.a = "c"
    val json:String = JSON.toJSONString(a)
    println(json)
    val obj:ObjectA = JSON.parseObject(json, ObjectA::class.java)
    println(obj)
}

输出结果:

{"b":"c"}
ObjectA(a=null)

toJSONString()的时候,执行了getB()方法。
parseObject()的时候,没有执行setB()这个方法。

使用的fastjson 版本是 1.2.37
kotlin版本是1.1.4-2

在java版本里这样子操作是正常的。kotlin不执行set方法。求解决!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions