如何在RetroFit中使用Gson转换器?

时间:2015-09-06 21:27:45

标签: java android gson retrofit

我正在制作一个简单的RetroFit应用程序用于教育目的,并使用IntelliJ IDEA作为我的IDE。

我已正确导入了Retrofit库(至少我认为我有),但我无法获得Gson Converter包。我安装了google的gson.jar,但是在这些库中都没有一个名为“GsonConverterFactory”的类,这是我解析JSON所必需的。

编辑:我在Windows上。

4 个答案:

答案 0 :(得分:22)

compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'添加到您的build.gradle文件中并解决依赖关系,或将相应的jar添加到您的bulid路径。

然后使用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 :(得分:19)

如果您使用的是改装2,则需要包含convert-gson包。对于gradle构建,您可以将compile 'com.squareup.retrofit:converter-gson:2.0.0-beta3'添加到依赖项部分。

对于其他构建系统或下载jar,请查看Maven Central convert-gson页面。

答案 2 :(得分:14)

试试这个

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

答案 3 :(得分:13)

模块中的

:app build.gradle add

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'