退出REPL后,Gson无法序列化LocalDate吗?

时间:2019-06-21 02:59:46

标签: java android kotlin gson

我正在android studio中编写一个android Kotlin应用程序,该应用程序与Firebase托管的api交互。 我决定将Fuel用于HTTP客户端,特别是将fuel-gson用于序列化。

基本类型(例如字符串/整数)的序列化进展顺利,但是当我向数据类添加LocalDate时,firestore数据库中的字段最终以空映射{}结束。

我在REPL中对其进行了测试,并得到了:

import com.google.gson.Gson
import java.time.LocalDate

Gson().toJson(LocalDate.now())
res0: kotlin.String! = {"year":2019,"month":6,"day":20}

因此LocalDate序列化似乎工作正常,但是当我尝试使用Log.d("GSON", Gson().toJson(LocalDate.now()))将其记录在代码中时,结果再次是:

2019-06-20 23:49:26.740 12653-12653/com.utn.nutricionista D/GSON: {}

我认为我可能以某种方式弄乱了我的依赖关系,所以我在创建干净项目后立即尝试了它,但是结果却是一样的。

此新项目具有最新的android API(Q),并且com.google.code.gson:gson:2.8.5作为依赖项。

package com.example.myapplication

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import com.google.gson.Gson
import java.time.LocalDateTime

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        Log.d("GSON", Gson().toJson(LocalDateTime.now()))
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

任何有关正在发生的事情以及如何解决此问题的见解,将不胜感激!

0 个答案:

没有答案