Java 用逗号格式化json文件?

Java 用逗号格式化json文件?,java,json,Java,Json,我有一个json文件 {"bla":"bla"} {"bla":"bla"} {"bla":"bla"} {"bla":"bla"} ...... 如何将其格式化为有效的json类型,如: [ {"bla":"bla"}, {"bla":"bla"}, {"bla":"bla"}, {"bla":"bla"}, ...... {"bla":"bla"} ] 在每个{}后面插入逗号,最后一个除外 我如何在java中做到这一点 谢谢 附言:

我有一个json文件

{"bla":"bla"}
{"bla":"bla"}
{"bla":"bla"}
{"bla":"bla"}
......
如何将其格式化为有效的json类型,如:

[    
    {"bla":"bla"},
    {"bla":"bla"},
    {"bla":"bla"},
    {"bla":"bla"},
    ......
    {"bla":"bla"}
]
在每个
{}
后面插入逗号,最后一个除外

我如何在java中做到这一点

谢谢

附言:好的。这是一个名为“1.json”的json文件,是我根据TCP响应创建的。我向服务器发送一些名称,收到响应并另存为文件。因为所有数据都像{“bal”:“bla”}{“bal”:“bla”}{“bal”:“bla”}{“bal”:“bla”}{“bal”:“bla”}。。。。。。 这是一个无效的json结构,jQuery
getJSON()
无法读取它。所以我想把它解析成一个有效的类型

  • 逐行读取文件
  • 使用Gson解析Java对象中的每个JSON对象——一个接一个,将其添加到列表中
  • 使用Gson转换JSON数组中的Java列表

    不用麻烦了。只需在文本编辑器中打开它,在
    “}
    “}之间执行搜索替换,
    并进行一些清理。

    使用

    String[] lines = inputJson.split('\n');
    StringBuilder out = new StringBuilder();
    out.append("[\n");
    for (String line : lines) {
        out.append("    ").append(line).append(",\n");
    }
    out.setLength(out.length() - 2);
    out.append("\n]");
    String outputJson = out.toString();
    

    如果您只需要重新格式化该输入(JSON对象行,每行一行),那么您实际上不需要将它们转换为Java JSON对象,您只需读入该文件并将其动态转换为新的JSON字符串:

    StringBuilder str = new StringBuilder();
    BufferedReader reader = null;
        try {
        str.append("[\n");
    
        for( String line = reader.readLine(); line != null; line = reader.readLine() ){
            str.append(line).append(",\n");
        }
    
        str.setLength(str.length()-2);
        str.append(']');
    
    } catch( Exception ex ){
        if(reader != null){ reader.close(); }
    }
    
    或者类似的东西。请注意,只有在JSON对象是在单行上定义的,而不是跨多行定义的情况下,这才有效


    希望这对您有所帮助。

    //您也可以在不使用任何库的情况下生成JSON字符串,因为使用库可以延长程序的执行时间

          String json = new String("[")
        while ((value = inputStream.readLine()) != null) { 
                if(json=="["){
                 json +=value
                }else{
         json +=","+value
               }
           }
    
      //complete the last enclosing  character
      json +="]"  
    

    这是一种简单的方法,我认为

    您可以通过简单的字符串附加和替换函数来完成。像vi或sed这样的文本编辑器(或者记事本,如果您只有一个要做的话)更适合此任务。在vi中键入
    :%s/}$/},/
    (在文件中以
    }
    结尾的所有行中添加逗号)非常感谢,这真是个好主意。这还假设对象的属性都不是对象本身。我想
    }\n
    =>
    }\n
    可以正常工作。所有这些数据都来自tcp响应,我将它们保存到一个文件中。现在,我想先寄生它们,然后保存一个有效的json类型文件,以便jQuery getJSON()可以读取它。
    StringBuilder str = new StringBuilder();
    BufferedReader reader = null;
        try {
        str.append("[\n");
    
        for( String line = reader.readLine(); line != null; line = reader.readLine() ){
            str.append(line).append(",\n");
        }
    
        str.setLength(str.length()-2);
        str.append(']');
    
    } catch( Exception ex ){
        if(reader != null){ reader.close(); }
    }
    
          String json = new String("[")
        while ((value = inputStream.readLine()) != null) { 
                if(json=="["){
                 json +=value
                }else{
         json +=","+value
               }
           }
    
      //complete the last enclosing  character
      json +="]"