如何将JSON转换为Hashmap对象

问题描述 投票:0回答:1

我正在尝试为我正在通过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请求的主体中传递它?任何帮助非常感谢。

java json
1个回答
0
投票

使用严格打字,如果你知道你的有效载荷,请不要使用地图(从头顶输入,可能不会立即编译):

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);
© www.soinside.com 2019 - 2024. All rights reserved.