2015-09-06 4 views
18

Я делаю простую заявку RetroFit для образовательных целей и использую IntelliJ IDEA в качестве моей IDE.Как использовать конвертер Gson в RetroFit?

Я правильно импортировал библиотеку Дополнения (по крайней мере, я думаю, что у меня есть), но я не могу получить пакет конвертера Gson. У меня есть gson.jar из Google, но нигде ни в одной из этих библиотек нет класса под названием «GsonConverterFactory», который необходим для того, чтобы я разбирал JSON.

Редактировать: Я нахожусь в Windows.

ответ

16

Если вы используете модификацию 2, вам необходимо включить пакет convert-gson. Для построения градиентов вы можете добавить compile 'com.squareup.retrofit:converter-gson:2.0.0-beta3' в раздел зависимостей.

Для других систем сборки или для загрузки фляги проверьте страницу Maven Central convert-gson.

18

Добавить compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' в ваш файл build.gradle и устранить зависимость или добавить соответствующие банки в ваш пуристый путь.

затем использовать GsonConverterFactory.create(), чтобы получить Converter Factory

Я попытался с помощью 2.0.0-beta1, но он дал мне недопустимую ошибку преобразования типа для завода, как указано ниже, поэтому переехал в 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 

Поэтому мое предложение заключается в использование 2.0.0-beta2

У меня build.gradle есть следующие зависимости для разрешения модернизации.

compile 'com.squareup.retrofit:retrofit:2.0.0-beta2' 
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 
+1

Ответ iagreen не будет работать на модификацию бета2. Если используется retrofit2, нам нужно использовать конвертер-gson beta 2, как сказал @manoj .. – DJphy

+0

получил ошибку - не удалось разрешить - для этих выше зависимостей – NarendraJi

11

Попробуйте

/* 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' 
8

в вашем модуле: приложение build.gradle добавить

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

выше версия же с вашей retrofit2 версией, так что, например, ваш retrofit2 версия 2.1 .0, чем ваш build.gradle должен быть таким:

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