2016-01-05 29 views
5

Tôi đã tạo một tệp Json nơi tôi muốn viết đối tượng java viết làm phần tử mảng. Im sử dụng jackson.Cách viết Json Array vào tập tin bằng cách sử dụng jackson

try{ 
      String json; 
      String phyPath = request.getSession().getServletContext().getRealPath("/"); 
      String filepath = phyPath + "resources/" + "data.json"; 
      File file = new File(filepath); 
      if (!file.exists()) { 
       System.out.println("pai nai"); 
       file.createNewFile();    
      } 
      json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(story); 
      Files.write(new File(filepath).toPath(), Arrays.asList(json), StandardOpenOption.APPEND);  
    } 

Đây không phải là những gì tôi muốn chính xác .it tạo ra dữ liệu như

{ 
    "storyTitle" : "ttt", 
    "storyBody" : "tttt", 
    "storyAuthor" : "tttt" 
} 
{ 
    "storyTitle" : "a", 
    "storyBody" : "a", 
    "storyAuthor" : "a" 
} 

tôi chỉ cần tạo một mảng của Json nơi tôi thêm đối tượng java, dữ liệu cần được như thế này

[{ 
    "storyTitle" : "ttt", 
    "storyBody" : "tttt", 
    "storyAuthor" : "tttt" 
} 
,{ 
    "storyTitle" : "a", 
    "storyBody" : "a", 
    "storyAuthor" : "a" 
}] 
+0

mẹo không liên quan: không cần tạo tệp nếu nó không tồn tại. Chỉ cần viết cho nó. – Henry

+0

'writeValueAsString (story);' bạn có thể hiển thị mã xác định 'câu chuyện' là gì không? – PDStat

+0

Tôi đã viết cách tôi đã viết nó như Array – Sayem

Trả lời

4

Jackson cung cấp các phương thức sẵn có để ghi dữ liệu JSON vào tệp JSON. bạn có thể sử dụng các loại dòng mã cho này

ObjectMapper mapper = new ObjectMapper(); 
ObjectWriter writer = mapper.writer(new DefaultPrettyPrinter()); 
writer.writeValue(new File("D:/cp/dataTwo.json"), jsonDataObject); 
//new file(path of your file) 

jsonDataObject là đối tượng thực tế của bạn (nghĩa là đối tượng hoặc mảng) mà bạn muốn viết trong tập tin.

+1

Tôi đã cố gắng ghi đè lên dữ liệu trước đó của nó mỗi khi tôi tạo dữ liệu mới. Tôi cần thêm dữ liệu như là một elemen của mảng Json. – Sayem

+0

anyidea làm thế nào để xuất bản số lượng giá trị bằng văn bản bằng cách sử dụng jackson? –

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