gson 相关问题

Gson是Google的开源库,用于将Java对象序列化和反序列化为JSON。

使用 Gson 映射密封类

尝试将 Json 中的传入 REST-api 结果映射到对象时出现以下错误: 无法调用没有参数的私有 kotlinx.serialization.json.jsonelement() 经过一些

回答 1 投票 0

Google Gson 保留通用签名

Firebase Crashlytics 中的崩溃出现并附有如何解决问题的注释: 致命异常:java.lang.IllegalStateException:必须使用类型参数创建 TypeToken:new TypeToken<...>()...

回答 1 投票 0

Kotlin '?:' 在数据类字段/属性不为空但 Gson 将其设置为空时有效吗?

下面的代码显示 gson.fromJson() 将忽略非空的 kotlin 数据类。 数据类 Test(val txt:String) val gson=Gson() val testClass=gson.fromJson("{\"txt\":null}",测试:...

回答 3 投票 0

Kotlin Gson 将 json 转换为分层类对象

我读了 API 的响应,它返回一个像这样的 JSON 对象 { “公司”:[{ “编号”:9, "label": "名字A" }, { “id&q...

回答 0 投票 0

什么最适合使用 Gson、TypeAdapter 或 JsonSerializer/ JsonSerializer 对 json 进行自定义序列化?

在使用Gson将java对象转换为JSON时,我发现我们可以定义自己的java对象序列化和反序列化方式。但我并没有完全得到什么是最好的答案......

回答 0 投票 0

java反序列化多个数组

我有以下json { “用户”:[ { “编号”:1, "名称": "灰烬", “电子邮件”:“[email protected]” }, { ...

回答 1 投票 0

JsonException 在将 Java 对象转换为 JSON 时

即使在创建自定义类型适配器后,下面的代码也会以某种方式失败。它适用于其他类型,如字符串。知道我该如何解决这个问题。下面是代码: 包com; 导入java.io.

回答 1 投票 0

Retrofit2:带有 JSON 数据的 Kotlin POST 请求返回 400

我正在尝试为我的应用程序使用 Retrofit2 而不是原始 HttpUrlConnection,所以我正在测试它,我发现了它的第一个基本问题。 我在 Reques.in 测试 API 上尝试将 json 数据传递给它,...

回答 1 投票 0

在反序列化时使用 gson 定义嵌套列表类型

通过使用新的 AGP v8.0 并启用完整的 R8,当我尝试从 JSON 字符串反序列化嵌套对象时,嵌套对象的类型被 gson 错误地识别为 LinkedTreeMap。 actions_l...

回答 1 投票 0

无需中间 pojo 即可将 JsonArray 转换为 Spark 数据集<Row>

从 http 调用中,我收到一个具有以下格式的 Json { “名称”:“富”, “版本”:1, "上传日期": "2023-04-17", “数据”: [ ...

回答 1 投票 0

Kotlin, Retrofit, ClassCastException, com.google.gson.internal.LinkedTreeMap 无法转换为 List<CatListItem>?

我的界面 接口 ApiService { @GET("网址") 有趣的 getCatList( @Query("var1") var1: 字符串, @Query("var2") var2: 字符串, ): 呼叫 我的界面 interface ApiService { @GET("URL") fun getCatList( @Query("var1") var1: String, @Query("var2") var2: String, ): Call<List<CatListItem>?> } 我的帮手 class ApiClient { companion object { private lateinit var retrofit: Retrofit fun getClient(): Retrofit { val interceptor = HttpLoggingInterceptor() interceptor.level = HttpLoggingInterceptor.Level.BODY val client = OkHttpClient.Builder().addInterceptor(interceptor).build() retrofit = Retrofit.Builder() .baseUrl(ApiConstants.baseUrl) .addConverterFactory(GsonConverterFactory.create()) .client(client) .build() return retrofit } } } 我的应用程序 override fun getCatList(var1: String, var2: String) { val apiInterface: ApiService = ApiClient.getClient().create(ApiService::class.java) val call = apiInterface.getCatList(var1, var2) call.enqueue(object : Callback<List<CatListItem>?> { override fun onResponse( call: Call<List<CatListItem>?>, response: Response<List<CatListItem>?> ) { if (response.isSuccessful) { val answer = CatList(response.body()) return } } override fun onFailure(call: Call<List<CatListItem>?>, t: Throwable) { call.cancel() } }) } 我的数据类 data class CatList( @field:SerializedName("catList") val catList: List<CatListItem?>? = null ) data class CatListItem( @field:SerializedName("name") val name: String? = null, ) 我的 JSON [{"name":"1"},{"name":"2"}] 我的 ProGuard 规则 -keep,allowobfuscation,allowshrinking interface retrofit2.Call -keep,allowobfuscation,allowshrinking class retrofit2.Response -keep,allowobfuscation,allowshrinking class retrofit2.* -keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation -keep class com.google.gson.** { *; } -keep class com.google.gson.reflect.** { *; } -keep class com.google.gson.stream.** { *; } -keep class com.google.gson.internal.** { *; } -keep class * implements java.io.Serializable { *; } -keepclassmembers class * { @com.google.gson.annotations.SerializedName <fields>; } -keepclassmembers enum * { *; } Release 模式下的 Logcat,除 Release 模式外在 Debug 模式下一切正常 java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to q2.a at o2.c.run(Unknown Source:385) at java.util.TimerThread.mainLoop(Timer.java:562) at java.util.TimerThread.run(Timer.java:512) 问题出在APK Release模式下,Debug模式下一切正常 我改变了超时,但没有任何改变。还在界面中测试了一个带有 suspend fun 的 runBlocking,没有任何改变。好像少了什么。我怀疑这是在内部处理列表时发生的? 需要你的帮助来解决这个问题。在此先感谢您的支持。 好的,谢谢你的回答。 我的问题的解决方案是: - 评论我的乐趣 getCatList(var1: String, var2: String)。 -编译发布。 - 然后取消注释我的功能。 - 再次编译。 不知道为什么这是这个问题的解决方案。 但对我有用。 如果有人能告诉我为什么会这样,将帮助我理解这个项目中是否遗漏了什么。 稍后。

回答 1 投票 0

无法为类调用无参数构造函数。为此类型向 Gson 注册一个 InstanceCreator 可能会解决这个问题

java.lang.RuntimeException:无法为类 com.arch.example.network.models.NetworkPagingList 调用无参数构造函数。为这种类型向 Gson 注册一个 InstanceCreator 可能会解决这个问题...

回答 2 投票 0

如何序列化抽象类

我正在使用 Gson 序列化我的对象,但我遇到了一个问题,即在我成功保存抽象对象后您无法读取它们。我发现这与我的问题有关,但它

回答 0 投票 0

如何在 java 中将以下 JSON 转换为 POJO 以进行反序列化

如何为以下类型的 JSON 编写等效的 POJO: [ { “oneImageBlock”:[{ "图片路径": "/abc", “mobileImageOverride”:{ “

回答 1 投票 0

如何使用 GSON 将数组序列化为 JSON 对象而不是 JSON 数组?

我有一个类: 公开课简介{ 私有名称; // 吸气剂和吸气剂 } 和其他地方的这种方法: public static void printProfiles(Profile[] profiles) { Gson gson = 新的 GsonB ...

回答 1 投票 0

GSON DTO 序列化为空

@豆子 public GsonBuilder gsonBuilder(List customizers) { GsonBuilder 构建器 = new GsonBuilder(); customizers.forEach((c) -> c.customize(建造者...

回答 1 投票 0

如何使用 GSON 将列表转换为 JSON 对象?

我有一个列表,我需要使用 GSON 将其转换为 JSON 对象。我的 JSON 对象中有 JSON 数组。 公共类 DataResponse { 私人列表 应用程序; // 吸气剂和

回答 5 投票 0

如何在 Kotlin 中使用 gson 反序列化到 ArrayList

我用这个类来存储数据 公共类项目(变量名:字符串, 变种描述:字符串?=空){ } 并在 ArrayList 中使用它 public var itemList = ArrayList() 用这个

回答 5 投票 0

使用 POST 命令时改进到 unicode 的转换

我目前正在使用数据类来构建改造 POST api 调用的请求主体。 主体本质上包含字符串。但是,我在发送字符串时注意到一个问题。改造是

回答 0 投票 0

启用缩小时数据类 gson 错误

所以,我有一个 Kotlin 数据类用作 Retrofit 库的数据传输对象,如下所示: 数据类 GenericPaginationResponse( @SerializedName("数据") 有效数据:列表&...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.