Java如何更新JSON对象值并将其作为正文发送给PUT请求

时间:2018-01-10 21:48:20

标签: java json

我正在尝试自动化我的REST服务的PUT请求,我对JAva来说是全新的。在这里,我传递一个PUT主体(JSON格式)以及其他标头。 我为PUT创建了一个Java类,其中我有getter和setter,我使用setter分配值并创建我的PUT主体并在我的PUT请求中发送此PUT主体。 我的PUT身体是这样的。我能够更新" id"和"名称"并创建我的身体对象,但我不知道如何更新" versionname"和"数"在"版本"路径?

{
    "versions": [
        {
            "versionname": "Test",
            "number": 1

        }
    ],
    "id": 89960004,
    "name": "TEST CES LIST4",


}

PUT主体的课程如下:

public class putBody {

public String id;
public String name;
public String versionName;
public String number;


public String getId() {
    return id;
}

public void setName(String name) {
    this.name = name;
}
public String getName() {
    return name;
}

public String getversionName() {
    return versionName;
}

public void setversionName(String versionName) {
    this.versionName = versionName;
}

我的问题是如何更新"版本名称"和"数字"并创建我的putBody对象。任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

首先,根据您提供的JSON输出,您的PutBody类必须有一个集合来保存您的版本数据。

为此,只需创建一个将用于每个版本信息的Version类:

public class Version {

    public String versionName;
    public String number;

    public String getVersionName() {
        return versionName;
    }

    public void setVersionName(String versionName) {
        this.versionName = versionName;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

}

然后,这是你的PutBody类应该看起来像

public class PutBody {

    public String id;
    public String name;
    public List<Version> versions;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<Version> getVersions() {
        return versions;
    }

    public void setVersions(List<Version> versions) {
        this.versions = versions;
    }

}

以下是根据您的示例值填充数据的方法:

List<Version> versions = new ArrayList<Version>();
    Version version = new Version();
    version.setVersionName("Test");
    version.setNumber("1");
    versions.add(version);

    PutBody putBody = new PutBody();

    putBody.setName("TEST CES LIST4");
    putBody.setId("89960004");
    putBody.setVersions(versions);

JSON输出:

{
  "id": "89960004",
  "name": "TEST CES LIST4",
  "versions": [
    {
      "versionName": "Test",
      "number": "1"
    }
  ]
}

<强>更新

Google的Gson为此目的提供了很多功能。您可以轻松地将Java实例转换为JSON并将JSON字符串转换回Java实例。

请检查that