格式列表<map <string,string>&gt;用杰克逊

时间:2018-04-12 15:02:15

标签: java json jackson

我想将对象映射到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来映射值。我该怎么做才能得到我想要的布局?

1 个答案:

答案 0 :(得分:1)

使用您的代码

OBJ_create()

输出

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"}]} 更改了名称,但您也可以将var的名称从@JsonProperty更改为

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