Can';t在Kotlin中解析json
我有这样一个json:Can';t在Kotlin中解析json,json,kotlin,klaxon,Json,Kotlin,Klaxon,我有这样一个json: {"ok":true,"result":[{"update_id":853803195, "message":{"message_id":313,"from":{"id":104906563,"is_bot":false,"first_name":"AL","use
{"ok":true,"result":[{"update_id":853803195,
"message":{"message_id":313,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594723984,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}},{"update_id":853803196,
"message":{"message_id":314,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594723986,"text":"e"}},{"update_id":853803197,
"message":{"message_id":325,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594734252,"text":"\ud83d\ude06"}},{"update_id":853803198,
"message":{"message_id":328,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594736358,"text":"5"}}]}
Unable to instantiate Response with parameters [ok: true, result: [, , , ]]
[java.lang.Object@680362a, java.lang.Object@3569edd5, java.lang.Object@1f651cd8, java.lang.Object@7d0332e1]
我在用图书馆。
就像在第一个示例中,我创建了一个类:
class Response(val ok: Boolean, val result: String)
我试图将第二个参数保存到一个字符串中,以便稍后也可以解析它。但我有一个例外:
{"ok":true,"result":[{"update_id":853803195,
"message":{"message_id":313,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594723984,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}},{"update_id":853803196,
"message":{"message_id":314,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594723986,"text":"e"}},{"update_id":853803197,
"message":{"message_id":325,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594734252,"text":"\ud83d\ude06"}},{"update_id":853803198,
"message":{"message_id":328,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594736358,"text":"5"}}]}
Unable to instantiate Response with parameters [ok: true, result: [, , , ]]
[java.lang.Object@680362a, java.lang.Object@3569edd5, java.lang.Object@1f651cd8, java.lang.Object@7d0332e1]
我尝试将结果设置为JsonObject
(或者JsonObjects
的JsonArray
),得到了这个结果
Unable to instantiate JsonObject with parameters []
唯一或多或少起作用的是一份清单。结果变成如下所示的java对象列表:
{"ok":true,"result":[{"update_id":853803195,
"message":{"message_id":313,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594723984,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}},{"update_id":853803196,
"message":{"message_id":314,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594723986,"text":"e"}},{"update_id":853803197,
"message":{"message_id":325,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594734252,"text":"\ud83d\ude06"}},{"update_id":853803198,
"message":{"message_id":328,"from":{"id":104906563,"is_bot":false,"first_name":"AL","username":"alzvaracc","language_code":"en"},"chat":{"id":104906563,"first_name":"AL","username":"alzvaracc","type":"private"},"date":1594736358,"text":"5"}}]}
Unable to instantiate Response with parameters [ok: true, result: [, , , ]]
[java.lang.Object@680362a, java.lang.Object@3569edd5, java.lang.Object@1f651cd8, java.lang.Object@7d0332e1]
但我不知道该怎么对付他们<所以我的问题是我该怎么做?我怎样才能得到我能处理的结果呢?试试这门课
import com.beust.klaxon.*
private val klaxon = Klaxon()
data class User (
val ok: Boolean,
val result: List<Result>
) {
public fun toJson() = klaxon.toJsonString(this)
companion object {
public fun fromJson(json: String) = klaxon.parse<User>(json)
}
}
data class Result (
@Json(name = "update_id")
val updateID: Long,
val message: Message
)
data class Message (
@Json(name = "message_id")
val messageID: Long,
val from: From,
val chat: Chat,
val date: Long,
val text: String,
val entities: List<Entity>? = null
)
data class Chat (
val id: Long,
@Json(name = "first_name")
val firstName: String,
val username: String,
val type: String
)
data class Entity (
val offset: Long,
val length: Long,
val type: String
)
data class From (
val id: Long,
@Json(name = "is_bot")
val isBot: Boolean,
@Json(name = "first_name")
val firstName: String,
val username: String,
@Json(name = "language_code")
val languageCode: String
)
导入com.beust.klaxon*
private val klaxon=klaxon()
数据类用户(
val ok:布尔值,
val结果:列表
) {
public-fun-toJson()=klaxon.toJsonString(this)
伴星{
public-fun-fromJson(json:String)=klaxon.parse(json)
}
}
数据类结果(
@Json(name=“update\u id”)
瓦尔:很长,
val消息:消息
)
数据类消息(
@Json(name=“message\u id”)
val messageID:Long,
val from:from,
val聊天室:聊天室,
val日期:长,
val text:String,
val实体:列表?=null
)
数据类聊天(
val id:Long,
@Json(name=“first_name”)
val firstName:String,
val用户名:String,
val类型:String
)
数据类实体(
val偏移量:长,
val长度:长,
val类型:String
)
来自的数据类(
val id:Long,
@Json(name=“is_bot”)
val-isBot:Boolean,
@Json(name=“first_name”)
val firstName:String,
val用户名:String,
@Json(name=“language\u code”)
val语言代码:String
)
太好了,很有效,谢谢!现在我感到内疚,有人为我做了所有的解析。。。不过我想到了,我想下次我会设法的。非常感谢。@AlexanderDay您也可以从这里解析它