2015-02-27 13 views
5

Tôi gặp khó khăn khi viết chuỗi json khá in trên tệp bằng thư viện Gson. Mã tôi đang sử dụng ở đây:Viết đầu ra json khá in vào luồng tệp tin với GSON JsonWriter

Gson gs = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();  

    JsonWriter jsonWriter = null; 
    try { 
     jsonWriter = new JsonWriter(new OutputStreamWriter(stream, "UTF-8")); 
     jsonWriter.beginArray(); 

    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    for (Feed feed : feeds) { 
     gs.toJson(feed, Feed.class, jsonWriter); 
    }  

    try { 
     jsonWriter.endArray(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      jsonWriter.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

Dòng này không là gì ngoài luồng đầu ra của tệp. Mặc dù tôi đã bật tính năng in đẹp nhưng tôi vẫn nhận được chuỗi json chưa được định dạng trong tệp.

Mọi trợ giúp đều được đánh giá cao.

+1

Sử dụng JSONWriter ist dự phòng - đó là những gì GSON dành cho. Bạn đã thử làm 'gs.toJSON (nguồn cấp dữ liệu, outputStreamWriter)'? –

+0

Rất cám ơn Adrian, nó đã hoạt động! – BigD

Trả lời

7

Bạn chỉ có thể bật bản in đẹp bằng cách đặt thụt lề.

jsonWriter.setIndent(" "); 
+2

^Đây là câu trả lời đúng. Lệnh 'GsonBuilder.setPrettyPrinting()' được bỏ qua khi sử dụng 'JsonWriter'. –

Các vấn đề liên quan