[英]Java how to update a JSON object value and send it as a body to PUT request
I am trying to automate my REST service's PUT request and I am completely new to JAva. 我正在尝试自动执行我的REST服务的PUT请求,而我对JAva完全陌生。 Here I am passing a PUT body(in JSON format) along with other headers.
在这里,我将传递一个PUT主体(JSON格式)以及其他标头。 I had created a Java class for PUT in which I have getters and setters and I am assigning values using setter and creating my PUT body and sending this PUT body in my PUT request.
我为PUT创建了一个Java类,其中有getter和setter,并且正在使用setter分配值并创建我的PUT主体,并在我的PUT请求中发送此PUT主体。 My PUT body is something like this .
我的PUT身体就是这样。 I am able to update "id" and "name" and create my body object but I am not sure how do I update the "versionname" and"number" under "versions" path?
我可以更新“ id”和“ name”并创建我的body对象,但是我不确定如何在“ versions”路径下更新“ versionname”和“ number”?
{
"versions": [
{
"versionname": "Test",
"number": 1
}
],
"id": 89960004,
"name": "TEST CES LIST4",
}
The class for PUT body is as below: 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;
}
My question is how to update the "versionname" and "number" and create my putBody object. 我的问题是如何更新“版本名称”和“数字”并创建我的putBody对象。 Any help much appreciated.
任何帮助,不胜感激。
First, your PutBody class must have a collection to keep your version data, according to the JSON output that you provided. 首先,根据您提供的JSON输出,您的PutBody类必须具有一个集合来保留您的版本数据。
For this purpose, just create a Version class that will be used for every single version information: 为此,只需创建一个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;
}
}
Then, here is your PutBody class should be look like 然后,这是您的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;
}
}
And here is how to fill it with data according to your example values : 以下是根据示例值用数据填充数据的方法:
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);
And the JSON Output : 和JSON输出:
{
"id": "89960004",
"name": "TEST CES LIST4",
"versions": [
{
"versionName": "Test",
"number": "1"
}
]
}
UPDATE 更新
Google's Gson has great features for this purpose. Google的Gson为此目的提供了强大的功能。 You can easily convert Java instances to JSON and convert JSON strings back to Java instances.
您可以轻松地将Java实例转换为JSON,并将JSON字符串转换回Java实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.