2016-01-05 20 views
5

私は、Jasonファイルを作成しました。ここでは、JavaオブジェクトをArray要素として書きたいと思っていました。私はジャクソンを使っています。jacksonを使ってJson Arrayをファイルに書き込む方法

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

これは私がまさに.ITは、私はちょうど私がJavaオブジェクトを追加し、JSONの配列を作成する必要が

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

のようなデータを作成し、データがこの

[{ 
    "storyTitle" : "ttt", 
    "storyBody" : "tttt", 
    "storyAuthor" : "tttt" 
} 
,{ 
    "storyTitle" : "a", 
    "storyBody" : "a", 
    "storyAuthor" : "a" 
}] 
ようにする必要があり欲しいものではありません
+0

関連していないヒント:ファイルが存在しない場合は作成する必要はありません。ちょうどそれに書きなさい。 – Henry

+0

'writeValueAsString(story);' 'story'が何であるかを定義するコードを表示できますか? – PDStat

+0

私は書いた書き込み方法を持っています。配列 – Sayem

答えて

4

JSONファイルにJSONデータを書き込むための組み込みメソッドを提供しています。 あなたはこの

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のコード行のこれらの並べ替えを使用することができますが、ファイルに書きたいあなたの実際のオブジェクト(すなわちオブジェクトまたは配列)です。

+1

私は新しいdata.Iを作成するたびに、このオーバーライド以前のデータを試しました.Json配列のelemenとしてデータを追加する必要があります。 – Sayem

+0

anyydaジャクソンを使って書かれた価値の量を公表する方法は? –

関連する問題