ローカルのJsonファイルを読み込む(JSonic利用)
Jsonicっていう,JavaでJsonを扱うライブラリを利用することになりました.
相変わらず,分からない.ので調べた.
1.利用するデータ
{ "x1":["Indigo","3"], "x2":["Rot","2"] }
2.取り込み用クラス
json側のキー名と,フィールドのプロパティ名が一致していることが味噌.
public class ListData { private String[] x1; private String[] x2; public String[] getX1() { return x1; } public void setX1(String[] x1) { this.x1 = x1; } public String[] getX2() { return x2; } public void setX2(String[] x2) { this.x2 = x2; } }
3.Json取得クラス
今回は,Mapとして調理します.迫真のクソコード
public class JsonPractice { private String filepath = "テキトーなファイルパス\\setjson.json"; public Map getList() { FileInputStream fis; try { fis = new FileInputStream(filepath); Map ldata = (Map)JSON.decode(fis); return ldata; } catch (FileNotFoundException e) { e.printStackTrace(); return null; } catch (JSONException e) { e.printStackTrace(); return null; } catch (IOException e) { e.printStackTrace(); return null; } } }
4.結果
うまくとれてるっぽいですよ?
class JsonPracticeTest { @Test public void TestGetListdata() { JsonPractice jsp = new JsonPractice(); Map<String,List<String>> ldata = jsp.getList(); List<String> x1 = ldata.get("x1"); assertThat(x1.get(0), is("Indigo")); } }
もっと楽なjsonの扱い方ないんだろうか? 調べが雑なのは認める...