如何在Java中格式化JSON结构

5kgi1eie  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(142)

我想用Java创建一个这样的JSON:

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

我知道如何创建键值json或json数组,但我不知道如何创建这样的structure
接下来我可以尝试什么?

flmtquvp

flmtquvp1#

看起来你的值更相对于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",
    }

使用jackson将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);

相关问题