使用逗号格式化json文件?

时间:2011-07-28 12:31:05

标签: java json

我有一个json文件。

{"bla":"bla"}
{"bla":"bla"}
{"bla":"bla"}
{"bla":"bla"}
......

如何将这些格式化为有效的json类型,例如:

[    
    {"bla":"bla"},
    {"bla":"bla"},
    {"bla":"bla"},
    {"bla":"bla"},
    ......
    {"bla":"bla"}
]

在每个{}之后插入逗号,除了最后一个。

我怎么能在java中做到这一点?

感谢。

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

6 个答案:

答案 0 :(得分:3)

  1. 逐行阅读文件
  2. 使用Gson在Java对象中解析每个JSON对象 - 逐个添加到列表中
  3. 使用Gson转换JSON数组中的Java列表。
  4. 查看Gson

答案 1 :(得分:2)

How can I do that in java, thx!

不要打扰。只需在文本编辑器中打开它,在"}"},之间进行搜索替换,然后进行一些清理。

答案 2 :(得分:1)

使用JSONObject

//Java style pseudo-code (using some string reader)
JSONArray jsonArray = new JSONArray();  
while ((value = inputStream.readLine()) != null) { //This is Pseudocode - don't take is as Gospel
    JSONObject json = new JSONObject(value);
    jsonArray.put(json);
}

System.out.println(jsonArray.toString());

答案 3 :(得分:0)

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();

答案 4 :(得分:0)

如果您只需要重新格式化该输入(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对象时,这才会有效。

希望这有帮助。

答案 5 :(得分:0)

//你也可以创建一个没有任何类型库的JSON字符串,因为使用库可以延长程序的执行时间。

      String json = new String("[")
    while ((value = inputStream.readLine()) != null) { 
            if(json=="["){
             json +=value
            }else{
     json +=","+value
           }
       }

  //complete the last enclosing  character
  json +="]"  

这是一种我想的简单方法