Java 用逗号格式化json文件?
我有一个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中做到这一点 谢谢 附言:
{"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结构,jQuerygetJSON()
无法读取它。所以我想把它解析成一个有效的类型
“}
和“}之间执行搜索替换,
并进行一些清理。使用
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 +="]"