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

时间:2016-04-30 23:42:28

标签: android json retrofit

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

{
"project": {
    "name": "newname123",
    "identifier": "id55"},
"key":"8f583ad25100575b974062e0cee43e47aa158e4e"}

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

这是我的界面

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

无论我是否尝试使用@body或@field,它都无效。

ProjectToSend类

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

public ProjectToSend(String name, String identifier) {
    this.name = name;
    this.identifier = identifier;

2 个答案:

答案 0 :(得分:0)

您可以尝试使用此网站创建复杂的POJO课程:JSON schema 2 pojo

答案 1 :(得分: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
}

然后致电:

@POST("put/the/url/here")
Call<Project> createUser(@Body Project project);