发现一个有意思的事情
fastjson解析{}
代码

@NoArg
data class Test(
        val a: String,
        val b: String?
)
fun main(args: Array<String>) {
    val t = JSON.parseObject("""{"":""}""", Test::class.java)
    println("${t}")
    println("${t.a}")
    println("${t.b}")
}

输出

Test(a=null, b=null)
null
null

作为比较
当解析字符串为{}

@NoArg
data class Test(
        val a: String,
        val b: String?
)
fun main(args: Array<String>) {
    val t = JSON.parseObject("""{}""", Test::class.java)
    println("${t}")
    println("${t.a}")
    println("${t.b}")
}

输出

null
Exception in thread "main" java.lang.NullPointerException
	at MainKt.main(main.kt:30)

fastjson没有初始化对象,不知道有没有选项,可以调整

相关文章: