[英]Retrofit Body Annotation Data
我正在使用Retrofit庫@Body
注釋,
創建一個接口:
interface Foo {
@POST("/jayson")
FooResponse postJson(@Body FooRequest body);
}
創建了一個模型類:
public class FooRequest {
final String foo;
final String bar;
FooRequest(String foo, String bar) {
this.foo = foo;
this.bar = bar;
}
}
創建了一個請求:
FooResponse = foo.postJson(new FooRequest("kit", "kat"));
然后我收到了回復:
{
"foo": "kit",
"bar": "kat"
}
但是,如果我想創建這樣的響應怎么辦:
{
"foo": "kit",
"bar": "kat",
"obj": {
"id": "1"
}
}
我該如何實現?
您必須創建代表嵌入式響應字段的類字段:
class Embedded {
final String id;
}
// The whole response
public class FooRequest {
final String foo;
final String bar;
final Embedded obj;
FooRequest(String foo, String bar, Embedded obj) {
this.foo = foo;
this.bar = bar;
this.obj = obj;
}
}
並將其序列化為JSON:
{
"foo": "kit",
"bar": "kat",
"obj": {
"id": "1"
}
}
public class FooRequest {
final String foo;
final String bar;
final Class object;
FooRequest(String foo, String bar, Class object) {
this.foo = foo;
this.bar = bar;
this.object = object;
}
}
創建Class.java為:
public class Class
{
int id;
//setter getters for id
}
FooResponse = foo.postJson(new FooRequest("kit", "kat", class));
class是您設置的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.