解説動画
今回は、Listインターフェースなのに、追加・削除ができないリストを見てみます。
よく使うリストですが、追加や削除すると例外が発生する場合があります。
■動画はこちら
■Youtube版の解説で使用しているソースコード
動画と一緒にこちらも参考にどうぞ。
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>maven</groupId> <artifactId>maven</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.0</version> </dependency> </dependencies> </project> |
JSONからオブジェクトに変換① – JacksonTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package yurufuwa.prog.sample; import java.io.File; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonTest { public static void main(String[] args) { try { //JSONファイルを読み込んで、オブジェクトに変換 File srcFile = new File("d:\\work\\input.json"); ObjectMapper om = new ObjectMapper(); Pref pref = om.readValue(srcFile, Pref.class); //読み込んだ結果を出力 System.out.println("--読み込んだPref--"); System.out.println("kenCode:" + pref.getKenCode()); System.out.println("kenName:" + pref.getKenName()); System.out.println("yomigana:" + pref.getYomigana()); } catch (Exception e) { e.printStackTrace(); } } } |
JSONからオブジェクトに変換① – Pref.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package yurufuwa.prog.sample; public class Pref { private String kenCode = null; private String kenName = null; private String yomigana = null; public String getKenCode() { return kenCode; } public void setKenCode(String kenCode) { this.kenCode = kenCode; } public String getKenName() { return kenName; } public void setKenName(String kenName) { this.kenName = kenName; } public String getYomigana() { return yomigana; } public void setYomigana(String yomigana) { this.yomigana = yomigana; } } |
JSONからオブジェクトに変換① – input.json
1 2 3 4 5 | { "kenCode" : "01", "kenName" : "北海道", "yomigana" : "ほっかいどう" } |
JSONからオブジェクトに変換② – JacksonTest2.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package yurufuwa.prog.sample; import java.io.File; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonTest2 { public static void main(String[] args) { try { //JSONファイルを読み込んで、オブジェクトに変換 File srcFile = new File("d:\\work\\input.json"); ObjectMapper om = new ObjectMapper(); PrefList prefList = om.readValue(srcFile, PrefList.class); //読み込んだ結果を出力 for(Pref pref : prefList.getPrefList()) { System.out.println("--読み込んだPref--"); System.out.println("kenCode:" + pref.getKenCode()); System.out.println("kenName:" + pref.getKenName()); System.out.println("yomigana:" + pref.getYomigana()); } } catch (Exception e) { e.printStackTrace(); } } } |
JSONからオブジェクトに変換② – Pref.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package yurufuwa.prog.sample; public class Pref { private String kenCode = null; private String kenName = null; private String yomigana = null; public String getKenCode() { return kenCode; } public void setKenCode(String kenCode) { this.kenCode = kenCode; } public String getKenName() { return kenName; } public void setKenName(String kenName) { this.kenName = kenName; } public String getYomigana() { return yomigana; } public void setYomigana(String yomigana) { this.yomigana = yomigana; } } |
JSONからオブジェクトに変換② – PrefList.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package yurufuwa.prog.sample; import java.util.List; public class PrefList { List<Pref> prefList = null; public List<Pref> getPrefList() { return prefList; } public void setPrefList(List<Pref> prefList) { this.prefList = prefList; } } |
JSONからオブジェクトに変換② – input.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | { "prefList" : [ { "kenCode" : "01", "kenName" : "北海道", "yomigana" : "ほっかいどう" }, { "kenCode" : "02", "kenName" : "青森県", "yomigana" : "あおもりけん" }, { "kenCode" : "03", "kenName" : "岩手県", "yomigana" : "いわてけん" } ] } |
オブジェクトからJSONに変換 – JacksonTest3.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | package yurufuwa.prog.sample; import java.io.File; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonTest3 { public static void main(String[] args) { try { //JSONファイルを読み込んで、オブジェクトに変換 File srcFile = new File("d:\\work\\input.json"); ObjectMapper om = new ObjectMapper(); PrefList prefList = om.readValue(srcFile, PrefList.class); //読み込んだ結果を出力 // for(Pref pref : prefList.getPrefList()) { // System.out.println("kenCode:" + pref.getKenCode()); // System.out.println("kenName:" + pref.getKenName()); // System.out.println("yomigana:" + pref.getYomigana()); // System.out.println("--"); // } //JSONファイルに書き込み File destFile = new File("d:\\work\\output.json"); om.writeValue(destFile, prefList); } catch (Exception e) { e.printStackTrace(); } } } |
オブジェクトからJSONに変換 – Pref.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package yurufuwa.prog.sample; public class Pref { private String kenCode = null; private String kenName = null; private String yomigana = null; public String getKenCode() { return kenCode; } public void setKenCode(String kenCode) { this.kenCode = kenCode; } public String getKenName() { return kenName; } public void setKenName(String kenName) { this.kenName = kenName; } public String getYomigana() { return yomigana; } public void setYomigana(String yomigana) { this.yomigana = yomigana; } } |
オブジェクトからJSONに変換 – PrefList.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package yurufuwa.prog.sample; import java.util.List; public class PrefList { List<Pref> prefList = null; public List<Pref> getPrefList() { return prefList; } public void setPrefList(List<Pref> prefList) { this.prefList = prefList; } } |
オブジェクトからJSONに変換 – input.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | { "prefList" : [ { "kenCode" : "01", "kenName" : "北海道", "yomigana" : "ほっかいどう" }, { "kenCode" : "02", "kenName" : "青森県", "yomigana" : "あおもりけん" }, { "kenCode" : "03", "kenName" : "岩手県", "yomigana" : "いわてけん" } ] } |