如何使用Retrofit POST复杂的JSON参数

Art*_*mov 5 android json retrofit

我需要做的Post请求应该是这样的

{
"project": {
    "name": "newname123",
    "identifier": "id55"},
"key":"8f583ad25100575b974062e0cee43e47aa158e4e"}
Run Code Online (Sandbox Code Playgroud)

我能够使用Postman中的原始实现将其发送到服务器,但不知道如何使用表单数据发送相同的内容

这是我的界面

@FormUrlEncoded
@POST("projects.json")
Call<Project> CreateProject(@Field(value = "project") ProjectToSend project,
                            @Field("key") String key);
Run Code Online (Sandbox Code Playgroud)

无论我是否尝试使用@body或@field,它都不起作用.

ProjectToSend类

public class ProjectToSend {
private String name;
private String identifier;

public ProjectToSend(String name, String identifier) {
    this.name = name;
    this.identifier = identifier;
Run Code Online (Sandbox Code Playgroud)

Mat*_*aga 0

创建两个类来表示完整的 JSON,如下所示:

public class Project {
    private ProjectToSend project;
    private String key;

    // getters and setters
}

public class ProjectToSend {
    private String name;
    private String identifier;

    // getters and setters
}
Run Code Online (Sandbox Code Playgroud)

然后调用:

@POST("put/the/url/here")
Call<Project> createUser(@Body Project project);
Run Code Online (Sandbox Code Playgroud)