草庐IT

java - 为什么 GSON 使用字段而不是 getter/setter?

为什么GSON使用ONLY字段(私有(private)、公共(public)、protected)?有没有办法告诉GSON只使用getter和setter? 最佳答案 一般来说,当您序列化/反序列化对象时,您这样做是为了得到对象状态的精确副本;因此,您通常希望规避OO设计中通常需要的封装。如果您不规避封装,则可能无法最终得到一个在反序列化之后具有与序列化之前完全相同的状态的对象。此外,请考虑您不想为特定属性提供setter的情况。如果您正在使用getter和setter,序列化/反序列化应该如何操作?

java - 列表的 Kotlin Gson 自定义反序列化器

如何在Gson中注册自定义的Json反序列化器?当我在Java代码中注册反序列化器时一切正常,但是当我将Kotlin转换为Java时-没有调用反序列化器方法。Kotlin注册码:vallistType:Type=object:TypeToken>(){}.typevalgson=GsonBuilder().registerTypeAdapter(listType,deserializer)valretrofit=Retrofit.Builder().addConverterFactory(GsonConverterFactory.create(gson))Java代码:Typelist

gson - 使用 GSON 的 Kotlin 对象反序列化

我有课classThreadComment(banned:Int,closed:Int,comment:String?,date:String?,email:String?,files:ArrayList?,lasthit:Int,name:String?,num:String?,op:Int,parent:String?,postsCount:Int,sticky:Int,subject:String?,tags:String?,timestamp:Int,trip:String?):Comment(banned,closed,comment,date,email,files,las

json - 如何使用 Gson 反序列化继承的 Kotlin 数据类

在Android应用程序中,我需要为Kotlin数据类反序列化Json数据,并使用单一抽象级别。但我不知道在构造函数中放置正确的属性。作为一个简单的版本,假设我有一个Shape:abstractclassShape(openvalx:Int,openvaly:Int)有两个派生dataclassCircle(valradius:Int,overridevalx:Int,overridevaly:Int):Shape(x,y)和dataclassSquare(valwidth:Int,overridevalx:Int,overridevaly:Int):Shape(x,y)所以我的目标是

gson - Kotlin不可为空的值可以为空吗?

我有返回一些json的后端。我把它解析给我的类(class):classSomeData(@SerializedName("user_name")valname:String,@SerializedName("user_city")valcity:String,varnotNullableValue:String)使用gson转换器工厂:Retrofitretrofit=newRetrofit.Builder().baseUrl(ENDPOINT).client(okHttpClient).addConverterFactory(GsonConverterFactory.create(

gson - 使用 Gson 和 Kotlin 1.0 beta 4 反序列化具有惰性属性的类

使用Gson,我想反序列化一个包含惰性属性的Kotlin类。使用Kotlin1.0beta4在对象反序列化过程中出现以下错误:Causedby:java.lang.InstantiationException:can'tinstantiateclasskotlin.Lazy在Kotlin1.0beta2中,我曾经用@Transient注释标记属性,以告诉Gson跳过它。在beta4中,这是不可能的,因为注释会导致编译错误。Thisannotationisnotapplicabletotarget'memberpropertywithoutbackingfield'我不知道如何解决这个问

android - 在 Kotlin 中使用 Gson 解析 JSON 数组

尝试在Kotlin中解析JSON数组,使其适用于单个JSON对象到WeatherObject对象(下面的代码fragment){"coord":{"lon":-2.93,"lat":43.26},"weather":[{"id":802,"main":"Clouds","description":"scatteredclouds","icon":"03d"}],"main":{"temp":283.681,"temp_min":283.681,"temp_max":283.681,"pressure":991.72,"sea_level":1034.92,"grnd_leve":991

android - 安卓中的 Moshi vs Gson

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭2年前。Improvethisquestion我正在决定是否使用Moshibysquare或Gson序列化和反序列化模型数据。我一直不喜欢Gson的一件事是我认为它使用反射在android上可能很慢?Moshi是否也使用反射?moshi与Gson的优缺点是什么?我认为它们很相似。以这个创建typeAdapter:的语句为例classCardAdapter{@ToJsonStringtoJson(Cardcard){returncard

android - 使用 Proguard 混淆时 Gson EnumTypeAdapter 中的 AssertionError

我的项目在序列化/反序列化期间在Gson中实现了一个TypeAdapter,以保留对象的多态状态。无论如何,该项目在开发测试期间运行良好,但是当它使用proguard混淆发布并经过测试时,它就崩溃了。03-2110:06:53.632:E/AndroidRuntime(12441):FATALEXCEPTION:main03-2110:06:53.632:E/AndroidRuntime(12441):java.lang.AssertionError03-2110:06:53.632:E/AndroidRuntime(12441):atcom.google.gson.internal.

android - Android Studio 中的 Gson 库

谁能给我一步一步的指南,将Gson库添加到Android项目中?我尝试了JSON内置库,但现在似乎有点乏味。我看到了几个基于Gson的例子,看起来很简单。 最佳答案 在build.gradle中添加如下依赖:implementation'com.google.code.gson:gson:2.8.7'或下载JAR文件fromMaven通过单击发布并找到.jar文件。将2.8.7替换为Maven的最新版本。访问GitHubrepo用于文档等。 关于android-AndroidStudio