我使用Square的Retrofit作为我的REST客户端,用于Android中的通信。我发现一些服务器端服务没有很好地序列化我们的对象。如何仅对对象的内部字段进行血清化?
在此示例中,如何转换此类:
public class Car {
private String plate;
private String carName;
}
进入此JSON表示(忽略大小写):
{
"plate":"abc123",
"carname":"BMW"
}
不进入此:
{
"car":
{
"plate":"abc123",
"carname":"BMW"
}
}
我实际上必须对某些类进行这种序列化,对其他类进行标准序列化。
答案 0 :(得分:1)
当您使用改装发出请求时,请将Car对象的每个部分作为 @Query (针对 @GET 请求)和 @Field发送(对于 @POST 请求。)
示例请求
select f.*
from dbo.frun('2015-01-01', '2015-02-01');
使用@Body
@FormUrlEncoded
@POST("www.foo.bar/example.json")
ExampleResponse getExample(@Field("plate") Car.plate,
@Field("carname") Car.carname);
(使用 @POST 与 @Body 不需要 @FormUrlEncoded )