gpt4 book ai didi

java - 使用Kotlin的Moshi 1.8.0无法将HashMap列表从JSON转换为JSON的问题

转载 作者:行者123 更新时间:2023-12-02 13:34:50 26 4
gpt4 key购买 nike

我看了很多例子,但并没有帮助我解决问题,
我有用于JSON映射的模型:

data class SomeResponse (
...
@Json(name = "dictionary")
var dictionary: HashMap<String, ArrayList<String>>? = null )

我正在使用Moshi进行JSON转换,当转换过程开始时发生异常

Platform java.util.HashMap> (with no annotations) requires explicit JsonAdapter to be registered



这是我的Moshi对象:
val customDateAdapter = object : Any() {
val dateFormat: DateFormat

init {
dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH)
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"))
}

@ToJson
@Synchronized
fun dateToJson(d: Date): String {
return dateFormat.format(d)
}

@FromJson
@Synchronized
fun dateToJson(s: String): Date {

try {
val date = dateFormat.parse(s)
Timber.d("DATE_FORMATTER Did format: $date")
return date
} catch (e: ParseException) {

try {
val df = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH)
df.timeZone = TimeZone.getTimeZone("GMT")
return df.parse(s)
} catch (e: ParseException) {
e.printStackTrace()
}
return Date()
}
}

private val stringArrayListAdapter = object : Any() {

@ToJson
@Synchronized
fun arrayListToJson(list: ArrayList<String>) : List<String> = list

@FromJson
@Synchronized
fun arrayListFromJson(list: List<String>) : ArrayList<String> = ArrayList(list)
}

val moshi: Moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.add(customDateAdapter)
.add(stringArrayListAdapter)
.build()

如何解决这个问题

最佳答案

Moshi仅支持Map。使用Map或为HashMap创建一个适配器。

关于java - 使用Kotlin的Moshi 1.8.0无法将HashMap列表从JSON转换为JSON的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58872374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com