web-dev-qa-db-fra.com

Comment utiliser le convertisseur Gson dans RetroFit?

Je crée une application RetroFit simple à des fins éducatives et utilise IntelliJ IDEA comme IDE.

J'ai importé correctement la bibliothèque Retrofit (du moins je pense que oui) mais je ne suis pas en mesure d'obtenir le package Gson Converter. J'ai le gson.jar de google installé mais nulle part dans aucune de ces bibliothèques il n'y a une classe appelée "GsonConverterFactory", qui est nécessaire pour moi pour analyser JSON.

Edit: je suis sur Windows.

23
vic.vele

Ajoutez compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' À votre fichier build.gradle Et obtenez la résolution de la dépendance ou ajoutez les fichiers JAR correspondants à votre chemin Bulid.

puis utilisez GsonConverterFactory.create() pour obtenir le Converter Factory

J'ai essayé d'utiliser 2.0.0-beta1 Mais cela m'a donné une erreur de conversion de type illégale pour l'usine comme indiqué ci-dessous, donc déplacé vers 2.0.0-beta2

  error: method addConverterFactory in class Builder cannot be applied to   given types;
    required: Factory
    found: GsonConverterFactory
    reason: actual argument GsonConverterFactory cannot be converted to Factory by method invocation conversion

Donc, ma suggestion est d'utiliser 2.0.0-beta2

mon build.gradle a les dépendances suivantes pour résoudre le retrofit.

 compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'  
 compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
22
manoj

Si vous utilisez Retrofit 2, vous devez inclure le convert-gson paquet. Pour les versions Gradle, vous pouvez ajouter compile 'com.squareup.retrofit:converter-gson:2.0.0-beta3' à votre section des dépendances.

Pour d'autres systèmes de build, ou pour télécharger le pot, consultez la page Maven Central convert-gson .

19
iagreen

Essaye ça

/* JSON */
compile 'com.google.code.gson:gson:2.5'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'

// >Retrofit & OkHttp
compile ('com.squareup.retrofit2:retrofit:2.0.0-beta3') {
    // exclude Retrofit’s OkHttp peer-dependency module and define your own module import
    exclude module: 'okhttp'
}
compile 'com.squareup.okhttp3:okhttp:3.0.1'
14
Joolah

dans votre module: app build.gradle add

compile 'com.squareup.retrofit2:converter-gson:[retrofit2 version]'

la version ci-dessus est identique à votre version retrofit2, donc par exemple votre version retrofit2 est 2.1.0, que votre build.gradle devrait être comme ceci:

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
13
faruk