簡體   English   中英

改裝車身注釋數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM