我想为Kotlin创建POJO类,因为我们知道www.jsonschema2pojo.org将JSON转换为POJO所以我们可以将它与gson一起使用。
任何人都知道如何为Kotlin创建Gson POJO 快速?
编辑:
我知道它使用数据类,但有没有最简单的方法来创建它?
答案 0 :(得分:57)
答案 1 :(得分:9)
是的,我得到了解决方案
例如:
{
"foo": "string",
"bar": "integer",
"baz": "boolean"
}
我的POJO课程使用http://www.jsonschema2pojo.org/
创建public class Example {
@SerializedName("foo")
@Expose
private String foo;
@SerializedName("bar")
@Expose
private String bar;
@SerializedName("baz")
@Expose
private String baz;
public String getFoo() {
return foo;
}
public void setFoo(String foo) {
this.foo = foo;
}
public String getBar() {
return bar;
}
public void setBar(String bar) {
this.bar = bar;
}
public String getBaz() {
return baz;
}
public void setBaz(String baz) {
this.baz = baz;
}
}
使用 Code -> Convert Java File to Kotlin File
或 CTRL + ALT + SHIFT + K转换 Kotlin 类
class Example {
@SerializedName("foo")
@Expose
var foo: String? = null
@SerializedName("bar")
@Expose
var bar: String? = null
@SerializedName("baz")
@Expose
var baz: String? = null
}
谢谢大家。
答案 2 :(得分:4)
如果我收到您的问题,您可能正在搜索某个插件以转换为POJO。所以
RoboPOJOGenerator
可以帮到你。您可以使用File>Setting>Plugin>Browse Repositories
中的插件并搜索RoboPOJOGenerator
。
要使用此插件,您首先需要创建一个单独的包,例如" data",右键单击该包,您将看到JSON
生成POJO。此外,您需要在gson
中加入gradle
库,因为此插件会自动生成gson
的注释,如@SerializedName
等。
答案 3 :(得分:2)
在vs-code中,有一个名为Paste JSON as Code的插件。 它支持多种语言。 Paste Json as code
答案 4 :(得分:1)
关于自动生成数据类的Kotlin支持的功能请求已在jsonschema2pojo github存储库中填充here。 目前,没有可用的jsonschema2kotlin Web实用程序。
如果您在Android Studio上安装新插件没有任何问题,请按照接受的答案,否则您可以做的最好的事情是使用jsonschema2pojo将JSON转换为Java POJO并使用Android Studio 3.0+功能,可将Java文件转换为Kotlin文件。
答案 5 :(得分:1)
这是简单的方法
并粘贴此代码,这是您的POJO /模型类
gcloud functions logs read --limit 50
class Model {
var uid: String? = null
var name: String? = null
}
答案 6 :(得分:0)
Text.Read
令人难以置信的权利!就这么简单。只需在data class ModelUser(val imagePath: String,val userName: String)
之前使用data
关键字在Kotlin中创建数据类。
Data类为您提供所有内容,getter,setter,hashCode,toString和equals函数。所以你要做的就是创建一个实例并开始使用这些函数。
答案 7 :(得分:0)
使用 Android Studio 或 IntelliJ IDEA 插件: JSON 转 Kotlin 类 (JsonToKotlinClass)
答案 8 :(得分:0)
答案 9 :(得分:-4)
data class VideoGame(val name: String, val publisher: String, var reviewScore: Int)
//Constructor
val game: VideoGame = VideoGame("Gears of War", "Epic Games", 8)
print(game.name) // "Gears of War"
print(game.publisher) // "Epic Games"
print(game.reviewScore) // 8
game.reviewScore = 7