2013-06-21 63 views
2

這裏去我的代碼傑克遜的Json後生成新的生產線的空間

import java.io.File; 
import java.io.IOException; 

import com.fasterxml.jackson.core.JsonEncoding; 
import com.fasterxml.jackson.core.JsonFactory; 
import com.fasterxml.jackson.core.JsonGenerator; 

public class Test { 

    public static void main(String[] args) throws IOException { 
     JsonFactory jfactory = new JsonFactory(); 
     JsonGenerator jGenerator = jfactory.createJsonGenerator(new File("test.json"), JsonEncoding.UTF8); 

     for(int i=0;i<4;i++){ 
      jGenerator.writeStartObject(); // { 
      jGenerator.writeStringField("name" , "test"); 
      jGenerator.writeEndObject(); // } 
      jGenerator.writeRaw('\n');  // creates new line 
     } 

     jGenerator.close(); 

     System.out.println("File Generated"); 
    } 

} 

當我看着生成的文件運行之後,它有一個空間,只是每一個新的記錄之前..有沒有辦法刪除這個空間一邊生成文件本身?

樣本輸出

{"name":"test"} 
{"name":"test"} 
{"name":"test"} 
{"name":"test"} 

回答

4

下次使用PrettyPrinter

new MinimalPrettyPrinter(""); 

你的代碼將看起來像

JsonFactory jfactory = new JsonFactory(); 
    JsonGenerator jGenerator = jfactory.createJsonGenerator(new File("test.json"), JsonEncoding.UTF8); 
    jGenerator.setPrettyPrinter(new MinimalPrettyPrinter("")); 
    for(int i=0;i<4;i++) 
    { 
     jGenerator.writeStartObject(); 
     jGenerator.writeStringField("name" , "test"); 
     jGenerator.writeEndObject(); 
     jGenerator.writeRaw('\n'); 
    } 
    jGenerator.close(); 
+0

非常感謝你IIya ..謝謝了很多。這真的有效 – JAB

+1

甚至更好:'jGenerator.setPrettyPrinter(新的MinimalPrettyPrinter(「\ n」));'你可以刪除wri來自代碼的teRaw ... – myroch