Json 正在用 moshi 解析
Json parsing with moshi
谁能告诉我为什么这不起作用
型号class:
@JsonClass(generateAdapter = true)
data class InstagramBusinessAccountResponse(
val data : List<Account>
) {
data class Account(
@Json(name = "id") val id : String,
@Json(name = "instagram_business_account") val instagramBusinessAccount : InstagramBusinessAccount
) {
data class InstagramBusinessAccount(
@Json(name = "id") val id: String,
@Json(name = "name") val name: String,
@Json(name = "profile_picture_url") val profilePictureUrl: String = ""
)
}
companion object {
fun fromJson(json: String) : InstagramBusinessAccountResponse {
val moshi = Moshi.Builder().build()
val jsonAdapter = moshi.adapter(InstagramBusinessAccountResponse::class.java)
return jsonAdapter.fromJson(json)!!
}
}
}
解析以下内容时json
{"data":[{"instagram_business_account":{"id":"id","username":"name","name":"Suyash Chavan","profile_picture_url":"image"},"id":"id"}]}
和
InstagramBusinessAccountResponse.fromJson(json.toString())
...
companion object {
fun fromJson(json: String) : InstagramBusinessAccountResponse {
val moshi = Moshi.Builder().build()
val jsonAdapter = moshi.adapter(InstagramBusinessAccountResponse::class.java)
return jsonAdapter.fromJson(json)!!
}
}
给 instagramBusinessAccount null 但如果我不使用带有 @Json 的自定义字段名称,即将 instagramBusinessAccount
替换为 instagram_business_account
并将 profilePictureUrl
替换为 profile_picture_url
, 它工作正常。
我在 Moshi Builder 中缺少 .add(KotlinJsonAdapterFactory())。
val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
现在有效。
谁能告诉我为什么这不起作用
型号class:
@JsonClass(generateAdapter = true)
data class InstagramBusinessAccountResponse(
val data : List<Account>
) {
data class Account(
@Json(name = "id") val id : String,
@Json(name = "instagram_business_account") val instagramBusinessAccount : InstagramBusinessAccount
) {
data class InstagramBusinessAccount(
@Json(name = "id") val id: String,
@Json(name = "name") val name: String,
@Json(name = "profile_picture_url") val profilePictureUrl: String = ""
)
}
companion object {
fun fromJson(json: String) : InstagramBusinessAccountResponse {
val moshi = Moshi.Builder().build()
val jsonAdapter = moshi.adapter(InstagramBusinessAccountResponse::class.java)
return jsonAdapter.fromJson(json)!!
}
}
}
解析以下内容时json
{"data":[{"instagram_business_account":{"id":"id","username":"name","name":"Suyash Chavan","profile_picture_url":"image"},"id":"id"}]}
和
InstagramBusinessAccountResponse.fromJson(json.toString())
...
companion object {
fun fromJson(json: String) : InstagramBusinessAccountResponse {
val moshi = Moshi.Builder().build()
val jsonAdapter = moshi.adapter(InstagramBusinessAccountResponse::class.java)
return jsonAdapter.fromJson(json)!!
}
}
给 instagramBusinessAccount null 但如果我不使用带有 @Json 的自定义字段名称,即将 instagramBusinessAccount
替换为 instagram_business_account
并将 profilePictureUrl
替换为 profile_picture_url
, 它工作正常。
我在 Moshi Builder 中缺少 .add(KotlinJsonAdapterFactory())。
val moshi = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
现在有效。