Reputation: 62429
I want to create POJO class for Kotlin, as we know that www.jsonschema2pojo.org converts JSON to POJO so we can use it with gson.
Anyone know how to create Gson POJO for Kotlin QUICKLY?
Edited:
I know its use Data classes, but is there any simplest way to create it?
Upvotes: 44
Views: 57895
Reputation: 3793
This is the simple way
Right-click on the package name and select New->Kotlin File/Class
Name the name (in my case, I am naming this as Model, you can name it whatever you like) and click OK.
Paste this code, this is your POJO/Model class:
class Model {
var uid: String? = null
var name: String? = null
}
val model = Model()
model.name = "Sunil"
Log.e("Model after", model.name)
Upvotes: 1
Reputation: 348
In my case Code -> Generate doesn't work, it is disabled (see screenshot)
You should install the plugin "JsonToKotlinClass"
Then right-click on the namespace and select
Paste your JSON here. That's all, profit.
Upvotes: 1
Reputation: 424
Use the Android Studio or IntelliJ IDEA plugin: JSON To Kotlin Class (JsonToKotlinClass)
Upvotes: 0
Reputation: 44861
A feature request about Kotlin support to auto generate data classes have been filled here in jsonschema2pojo github repository. Currently, there is no jsonschema2kotlin web utility available.
If you don't have any problem installing a new plugin on Android Studio, follow the accepted answer, otherwise the best you can do is to use jsonschema2pojo to convert JSON to Java POJO and the use the Android Studio 3.0+ feature that converts a Java file to a Kotlin one.
Upvotes: 10
Reputation: 478
If I got your question, you might be searching some plugin for converting to POJO. So
RoboPOJOGenerator
may help you. You can use a plugin from File>Setting>Plugin>Browse Repositories
and search for RoboPOJOGenerator
.
To use this plugin you first need to create a separate package like "data", right-click the package and you will see Generate POJO from JSON
. Also, you need to include gson
library in gradle
because this plugin will automatically generate annotation of gson
like @SerializedName
, etc.
Upvotes: 5
Reputation: 94
In vs-code there is a plugin named Paste JSON as Code. it supports many languages. Paste Json as code
Upvotes: 6
Reputation: 1352
I think this should be the Plugin what you want
https://github.com/wuseal/JsonToKotlinClass
Upvotes: 77
Reputation: 14628
data class ModelUser(val imagePath: String,val userName: String)
Unbelievable Right! Its as simple as that. Just use data
keyword before class
to create Data class in Kotlin.
Data class provides you with everything, getters, setters, hashCode, toString and equals functions. So all you have to do is create an instance and start using the functions.
Upvotes: 10
Reputation: 62429
Yes, I got solution
for Example:
{
"foo": "string",
"bar": "integer",
"baz": "boolean"
}
My POJO Class Created using 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;
}
}
Converted Kotlin Class using Code -> Convert Java File to Kotlin File
or CTRL + ALT + SHIFT + K
class Example {
@SerializedName("foo")
@Expose
var foo: String? = null
@SerializedName("bar")
@Expose
var bar: String? = null
@SerializedName("baz")
@Expose
var baz: String? = null
}
Thank you all.
Upvotes: 21
Reputation: 2432
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
Upvotes: -5