KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

JAVAでJSONをパースする

アンドロイドアプリに使っているAPIXMLからJSONに変わったので、JSONをパースする必要が出てきた。

ふりがな付与

ふりがな付与

  • kyukyunyorituryo
Amazon

JAVAJSONをパースする方法はいくつもあるみたいで、jackson使ったほうが簡単らしいが、とりあえずやってみる。

パースしたいデータは次のようなものだ。resultのword以下からオブジェクトを取得して行きたい。

{
  "id": "1234-1",
  "jsonrpc": "2.0",
  "result": {
    "word": [
      {
        "furigana": "かんじ",
        "roman": "kanzi",
        "surface": "漢字"
      },
      {
        "furigana": "かなまじり",
        "roman": "kanamaziri",
        "subword": [
          {
            "furigana": "かな",
            "roman": "kana",
            "surface": "かな"
          },
          {
            "furigana": "ま",
            "roman": "ma",
            "surface": "交"
          },
          {
            "furigana": "じり",
            "roman": "ziri",
            "surface": "じり"
          }
        ],
        "surface": "かな交じり"
      },
      {
        "furigana": "ぶん",
        "roman": "bun",
        "surface": "文"
      },
      {
        "surface": "に"
      },
      {
        "surface": "ふりがな"
      },
      {
        "surface": "を"
      },
      {
        "furigana": "ふる",
        "roman": "huru",
        "subword": [
          {
            "furigana": "ふ",
            "roman": "hu",
            "surface": "振"
          },
          {
            "furigana": "る",
            "roman": "ru",
            "surface": "る"
          }
        ],
        "surface": "振る"
      },
      {
        "surface": "こと"
      },
      {
        "surface": "。"
      }
    ]
  }
}

developer.yahoo.co.jp

JSONObject json = new JSONObject(jsonText);
JSONArray word = json.getJSONObject("result").getJSONArray("word");

これでword以下をオブジェクトとして取得できたが。あとはjavascriptと同じような書き方でパースをする。

qiita.com

更に細かく見ていく必要がある。

for文とswitchを使いながらパースしていった。

    JSONArray elements = json.getJSONObject("result").getJSONArray("word");
       for (int i = 0; i < elements.length(); i++) {
            JSONObject element = elements.getJSONObject(i);

            switch (element.length()) {

}}

 

hensa40.cutegirl.jp

tkm0on.hatenablog.com

tkm0on.hatenablog.com

docs.oracle.com