为Kotlin创建POJO类

我想为Kotlin创建POJO类,因为我们知道www.jsonschema2pojo.org将JSON转换为POJO,因此我们可以将它与gson一起使用。

任何人都知道如何快速为Kotlin创建Gson POJO

编辑:

我知道它使用数据类,但有没有最简单的方法来创建它?

我认为这应该是你想要的插件

JSON到Kotlin类插件

https://github.com/wuseal/JsonToKotlinClass

是的,我得到了解决方案

例如:

{ "foo": "string", "bar": "integer", "baz": "boolean" } 

我的POJO课程使用http://www.jsonschema2pojo.org/创建

Example.java

 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转换KotlinCode -> Convert Java File to Kotlin FileCTRL + ALT + SHIFT + K.

Example.kt

 class Example { @SerializedName("foo") @Expose var foo: String? = null @SerializedName("bar") @Expose var bar: String? = null @SerializedName("baz") @Expose var baz: String? = null } 

谢谢你们。

如果我收到您的问题,您可能正在搜索某个插件以转换为POJO。 所以RoboPOJOGenerator可以帮助你。你可以使用File> Setting> Plugin> Browse Repositories中的插件并搜索RoboPOJOGenerator。 要使用此插件,首先需要创建单独的包,如“data”,右键单击包,您将看到从JSON生成POJO。 你还需要在gradle中包含gson库,因为这个插件会自动生成像@SerializedName等的gson注释。

有关Kotlin支持自动生成数据类的function请求已在jsonschema2pojo github存储库中填写。 目前,没有可用的jsonschema2kotlin Web实用程序。

如果您在Android Studio上安装新插件没有任何问题,请按照接受的答案,否则您可以做的最好的事情是使用jsonschema2pojo将JSON转换为Java POJO并使用转换Java的Android Studio 3.0+function提交给Kotlin。

在此处输入图像描述

 data class ModelUser(val imagePath: String,val userName: String) 

令人难以置信的权利! 就这么简单。 只需在class前使用data关键字在Kotlin中创建Data类。

Data类为您提供一切,getter,setter,hashCode,toString和equals函数。 所以你要做的就是创建一个实例并开始使用这些函数。

尝试这个

这是一种简单的方法

  1. 右键单击包名称,然后选择New-> Kotlin File / Class 在此处输入图像描述
  2. 命名这个名称,在我的例子中,我将它命名为Model你可以随意选择并点击确定 在此处输入图像描述
  3. 并粘贴此代码, 这是POJO / Model类

     class Model { var uid: String? = null var name: String? = null } 

    在此处输入图像描述

如何使用这个

  val model=Model() model.name="Sunil" Log.e("Model after",model.name) 

在此处输入图像描述

 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