有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaGit创建一个JSON文本文件,其中包含不同行上的键值对和符号,以避免出现合并问题

我有一个Java应用程序,它填充JSON对象并将其保存到磁盘

代码如下:

JSONData = new JSONObject();
    try {
        JSONData.put(KEY,value);
    } catch (JSONException e1) {
        // TODO Auto-generated catch block

    }
...

它是针对键值对、数组等数据完成的。然后

JSONText=JSONData.toString();

我得到一个JSON文件,它由一行长的文本组成

相反,我需要生成的JSON文件在单独的一行中包含每一个键值对,也可以是数组,也可以是像[]或{}这样的符号

例如:

{
"key1":value1, //or even key and value on separate lines
"key2":"value2",
"arrayKey":
[
{
"keyA":valueA,
"keyB":"valueB",
"keyC":
[
0,
1,
2
]
},

{
"keyA":anotherValueA,
"keyB":"anotherValueB",
"keyC":
[
4,
5,
6
]
}
]
}

如何做到这一点


共 (2) 个答案

  1. # 1 楼答案

       public static void main(String[] args) throws JsonProcessingException {
            ObjectMapper mapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT);
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("key1", "value");
            map.put("key2", "value");
            Map<String, Object> innerMap = new HashMap<String, Object>();
            innerMap.put("hi", "hello");
            innerMap.put("foo", "bar");
            map.put("collection", innerMap);    
            System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(map));
        }
    

    输出

    {
      "key1" : "value",
      "key2" : "value",
      "collection" : {
        "hi" : "hello",
        "foo" : "bar"
      }
    }
    

    这对所有人都有效

  2. # 2 楼答案

    可能需要对字符串进行替换操作,在每个指定符号前后插入回车符

    我认为问题更多的是git方面。你能准确地解释一下你想解决的问题吗