android - 在 Android 中将 POJO 转换为 JSON Retrofit

标签 android json retrofit

Retrofit 中有什么简单的方法可以自动将传递的对象转换为 JSON 吗?

这是我的 Retrofit 界面:

@FormUrlEncoded
@POST("/places/name")
void getPlacesByName(@Field("name") String name,
                     @Field("city") String city,
                     @Field("tags") Tags tags,
                     Callback<PlaceResponse> callback);

起初我以为如果我传递 Tags 对象它会自动转换为 JSON ,但实际上请求看起来像这样: name=pubs&city=London&tags=com.app.database.model.Tags%4052aa38a8

Retrofit中有什么简单的方法可以将POJO转换成JSON吗?

最佳答案

您正在创建带参数的 URL,因为您正在使用 @URLEncoded 并将参数作为 @Field 传递。

解决方法如下:

@POST("/places/name")
void getPlacesByName(@Body RequestObject req, Callback<PlaceResponse> callback);

此外,我建议使用 @GET 来检索对象。 @POST 用于创建对象,@PUT 用于更新。虽然这并没有错,但建议它符合 RESTful 标准。

关于android - 在 Android 中将 POJO 转换为 JSON Retrofit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30578034/

相关文章:

android - 如何在 Android Studio 中以简单的方式删除未使用的字符串资源项?

Java.lang.ClasscastException : java. lang.String 无法在 android 中转换为错误

具有正确宽高比和边框的Android图片

javascript - 用于从 url 中提取不带扩展名的文件名的正则表达式

android - 在 fragment android中查看重用

json - 在需要对象交互的站点上使用 XML HTTP 请求

ruby-on-rails - rails : Filter sensitive data in JSON parameter from logs

java - 从 api 调用接收 null

java - 在 Wildfly 上使用 OkHttpClient 导致异常

android - 如何指定 Get-Request 编码(Retrofit + OkHttp)