42 votes

Créer une classe POJO pour Kotlin

Je veux créer une classe POJO pour Kotlin, car nous savons que www.jsonschema2pojo.org convertit JSON en POJO afin de pouvoir l'utiliser avec gson.

Quelqu'un sait-il comment créer un POJO Gson pour Kotlin ? RAPIDEMENT ?

Édité :

Je sais qu'il est possible d'utiliser les classes de données, mais existe-t-il un moyen plus simple de le créer ?

6 votes

En Kotlin, vous écrivez classes de données au lieu des POJO.

2 votes

Si vous utilisez Android Studio, je pense que vous pouvez créer des classes Java et les convertir ensuite en Kotlin.

76voto

吴海豹 Points 662

Je pense que c'est le plugin que vous voulez.

JSON To Kotlin Class Plugin

https://github.com/wuseal/JsonToKotlinClass

0 votes

Update : Super plugin, mais le studio se bloque après la conversion (Android studio version 2.3.3)

0 votes

@Amalp Cela se produit à chaque fois, je viens de tester, tout se passe bien, pouvez-vous coller votre JsonString ici ? ou vous pouvez soulever un problème de détail ici, github.com/wuseal/JsonToKotlinClass/issues Remerciements

0 votes

@Amalp Merci pour votre problème, la nouvelle version a corrigé ce problème, vous pouvez essayer avec la nouvelle version.

21voto

Pratik Butani Points 4290

Oui, j'ai trouvé la solution

par exemple :

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

Ma classe POJO Créée en utilisant http://www.jsonschema2pojo.org/

Exemple.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;
    }
}

Converti Kotlin Classe utilisant Code -> Convert Java File to Kotlin File o CTRL + ALT + SHIFT + K

Exemple.kt

class Example {

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

Je vous remercie tous.

1 votes

Vous avez fait exactement ce que j'ai décrit dans ma réponse mais j'ai reçu des votes négatifs à la place ^^

3 votes

Vous pouvez utiliser json2kotlin.com pour générer des classes de données kotlin directement à partir de json au lieu d'avoir besoin d'une conversion java entre les deux.

0 votes

Qu'en est-il des getter et setter dans le cas de Kotlin ? Et les variables ne peuvent-elles pas être privées ? Il n'y a pas d'autre solution que d'ajouter une note sur la façon d'accéder à ces variables (par exemple, bar).

8voto

MatPag Points 12624

Une demande de fonctionnalité concernant le support de Kotlin pour la génération automatique de classes de données a été remplie. aquí dans le dépôt github jsonschema2pojo. Actuellement, il n'y a pas d'utilitaire web jsonschema2kotlin disponible.

Si vous n'avez pas de problème pour installer un nouveau plugin sur Android Studio, suivez la réponse acceptée, sinon le mieux que vous puissiez faire est d'utiliser jsonschema2pojo pour convertir JSON en Java POJO et utiliser la fonctionnalité d'Android Studio 3.0+ qui convertit un fichier Java en fichier Kotlin.

enter image description here

15 votes

Votes négatifs sans explications, beau travail les gars ;)

1 votes

Peut-être qu'ils ont peur de Vengeance des downvotes .

5voto

Dans vs-code, il existe un plugin nommé Paste JSON as Code. Il prend en charge de nombreux langages. Coller Json comme code

quick look

4voto

Nabin Khatiwada Points 325

Si j'ai bien compris votre question, il se peut que vous cherchiez un plugin pour convertir en POJO. Donc RoboPOJOGénérateur peut vous aider. Vous pouvez utiliser un plugin de File>Setting>Plugin>Browse Repositories et rechercher RoboPOJOGenerator . Pour utiliser ce plugin, vous devez d'abord créer un paquet séparé comme "data", faites un clic droit sur le paquet et vous verrez Generate POJO from JSON . Vous devez également inclure gson bibliothèque en gradle car ce plugin génère automatiquement une annotation de gson comme @SerializedName etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X