格式列表<映射<字符串,字符串>>使用杰克逊



我想将一个对象映射到json,如下所示:

 {"MyClass" : 
      [
        {"key" : "value"},
        {"key" : "value"}
      ]}

但是我的代码给了我:

{"MyClass" : {
      "list" : {
        "key" : "value",
        "key" : "value"
      }

我的代码是这样的:

public class MyClass {
    private List<Map<String,String>> list;
    //getters & setters......
  }

和:

Map<String, String> map1 = new HashMap<String,String>();
map1.put("key", "value");
Map<String,String> map2 = new HashMap<String,String>();
map2.put("key","value");
List<Map<String,String> list = new ArrayList<Map<String,String>();
list.add(map1);
list.add(map2);

我正在使用ObjectMapper来映射值。我该怎么做才能获得我想要的布局?

使用您的代码

class MyClass  {
    @JsonProperty("MyClass")
    public List<Map<String,String>> list;
    public static void main(String[] args) throws JsonProcessingException {
        Map<String, String> map1 = new HashMap<String,String>();
        map1.put("key", "value");
        Map<String,String> map2 = new HashMap<String,String>();
        map2.put("key","value");
        List<Map<String,String>> list = new ArrayList<Map<String,String>>();
        list.add(map1);
        list.add(map2);
        MyClass d = new MyClass();
        d.list = list;
        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(d);
        System.out.println(json);
    }
}

输出

{"MyClass":[{"key":"value"},{"key":"value"}]}

我用@JsonProperty来更改名称,但您也可以将 var 的名称从 list 更改为任何

名称

注意:这只是实施草案...不要使用公共类变量,等等...

相关内容

最新更新