やりたいこと
以下のJsonファイルのように書き込みをしたいです。
Json
1[ 2 { 3 "name": "Turtle Rock", 4 "category": "Featured", 5 "city": "Twentynine Palms", 6 "state": "California", 7 "id": 1001, 8 "park": "Joshua Tree National Park", 9 }, 10 { 11 "name": "Silver Salmon Creek", 12 "category": "Lakes", 13 "city": "Port Alsworth", 14 "state": "Alaska", 15 "id": 1002, 16 "park": "Lake Clark National Park and Preserve", 17 } 18]
質問Json
書き込みはmapper.writeValue(new File("UserData.json"),uData)
で行うそうで、実際に行うと書き込みができます。
ですが、新しいkeyWordを登録しようとしてwriteValue
を行うと上書きされてしまい、保存されていたデータが飛んでしまいます。
どうしたら、既存のデータに影響することなくkeyWordを追加するにはどうしたらいいですか?
java
1 2class UserData{ 3 public String sentence; 4 public String day; 5} 6 7public class JsonTry{ 8 public static void main(String[] args){ 9 UserData uData = new UserData(); 10 uData.sentence = "abcdefghijklmnop"; 11 ObjectMapper mapper = new ObjectMapper(); 12 mapper.enable(SerializationFeature.INDENT_OUTPUT); 13 14 try{ 15 mapper.writeValue(new File("UserData.json"),uData); 16 System.out.println(mapper); 17 }catch(IOException e){ 18 e.printStackTrace(); 19 } 20 } 21}
また、上のプログラムではJsonデータを配列で囲めていません。
どうやったら配列として登録できますか?
また、その配列に新しい値を登録するにはどうしたらいいですか?
上記2つについてネットで調べるとObjectNode
を使う方法があるそうで
Json
1ObjectMapper mapper = new ObjectMapper(); 2ObjectNode node = mapper.createObjectNode(); 3node.put("isWord","false");
とやると追加できるとある記事に書いてあったのですが、どこでファイルの指定をしているのですか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/25 07:51