alibaba / fastjson

FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.
https://github.com/alibaba/fastjson2/wiki/fastjson_1_upgrade_cn
Apache License 2.0
25.74k stars 6.5k forks source link

可以支持反序列化私有setter吗? #1581

Open xdongliang opened 6 years ago

xdongliang commented 6 years ago
import com.alibaba.fastjson.JSONObject

class User{
    var name: String? = null
        private set
}

fun main(args: Array<String>) {
    val user = JSONObject.parseObject("{\"name\":\"fastjson\"}", User::class.java)
    println(user.name)
}

运行结果:null 期望结果:fastjson

@wenshao 拜托支持一下~

xdongliang commented 6 years ago

我以为使用:Feature.SupportNonPublicField可以解决这个问题,但当我这样写时:

open class BaseUser {
    var name: String? = null
        protected set
}

class User : BaseUser()

fun main(args: Array<String>) {
    val user = JSONObject.parseObject("{\"name\":\"fastjson\"}", User::class.java, Feature.SupportNonPublicField)
    println(user.name)
}

继承基类的一个protected属性,这个属性就不能被正确设置。

@wenshao 请解决一下这个问题

Venuluo commented 4 years ago

唉,这个没解决吗。感觉私有setter方法支持也挺有必要的

pig345 commented 4 weeks ago

这个特性有点坑人,也不报错,查了好久才发现。现在还没有办法设置吗?