我正在尝试为我正在通过PUT主体的休息服务自动化PUT请求。我正在尝试使用HashMap为正文创建一个对象并为其添加值。我不确定如何使用Hashmap为嵌套的JSON元素添加值。
我的身体是这样的:{
"versions": [
{
"versionname": "Test",
"number": 1
}
],
"id": 19,
"name": "TEST",
}
我的代码如下:
public static Map<String, Object> map = new HashMap<String, Object>();
map.put("id", "2");
map.put("name", "TEST");
我的问题是如何将'versionname'和'number'元素的值添加到地图中,以便我可以在我的PUT请求的主体中传递它?任何帮助非常感谢。
使用严格打字,如果你知道你的有效载荷,请不要使用地图(从头顶输入,可能不会立即编译):
public class Request {
public static class Version {
public String versionname;
public int number;
protected Version() {} // for deserializer
public Version(String versionname, int number) {
this.versionname = versionname;
this.number = number;
}
}
public List<Version> versions = new ArrayList<>();
public int id;
public String name;
}
Request request = new Request();
request.versions.add(new Version("Test", 1));
request.id = 19;
request.name = "TEST";
String jsonString = new ObjectMapper().writeValueAsString(request);
Request deserialized = new ObjectMapper().readValue(jsonString, Request.class);