关于在java中格式化json结构的问题

时间:2015-10-09 08:12:29

标签: java json

我想用java创建一个像这样的json:

"foo": {
         "key1": "value1",
         "key2": "value2",
         }

我知道如何创建键值json或json数组 ,但我不知道如何创建这样的structure。< / p>

有什么帮助?

提前感谢。

1 个答案:

答案 0 :(得分:1)

  

您的值似乎与java的Map相关。所以你需要   找到如何使用java将Map转换为json。通常是json   处理正在使用json和gson等框架执行。然而   您可以使用StringBuilder课程手动完成。参考以下内容   使用java手动创建json的示例。

使用java手动创建json

    Map<String, String> map = new HashMap<>();
    map.put("key1", "value1");
    map.put("key2", "value2");

    //convert it to json maually
    StringBuilder builder = new StringBuilder();
    builder.append("\"foo\":{");
        builder.append("\n");
    for (String key : map.keySet()) {
        builder.append("\t");
        builder.append("\"").append(key).append("\"");
        builder.append(":");
        builder.append("\"").append(map.get(key)).append("\"");
        builder.append(",");
        builder.append("\n");
    }
    builder.append("\t}");

    String json = builder.toString();
    System.out.println(json);

<强>输出:

"foo":{
    "key2":"value2",
    "key1":"value1",
    }

按照以下示例将Map<K,V>转换为带杰克逊的json。

    Map<String, String> map = new HashMap<>();
    map.put("key1", "value1");
    map.put("key2", "value2");

    String json = new ObjectMapper().writeValueAsString(map);
    System.out.println(json);