【Androidでデータやファイルと戯れる】JSONArrayをJSONTokenerから作成する

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

JSONとはRFC 4627RFC 7159で規定される構造化された文字列のことです。

AndroidでJSONを取り扱うにはorg.jsonパッケージを使用します。
今回は、JSONArrayJSONTokenerから作成します。

JSONArray(JSONTokener readFrom)とは

JSONArrayにはJSONTokenerを引数に持つコンストラクタがあります。
このコンストラクタはJSONTokenerインスタンスからJSONArrayを作成することができます。
しかし、渡したJSONTokenerインスタンスのカレントポジション以降の文字列がJSONの規定を守っていない場合はJSONExceptionが発生します。

JSONArray(JSONTokener readFrom)を使う


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        JSONArray jsonArray = createJSONArrayFromJSONTokener();
        Log.d("JSONArray", "JSONArray: " + jsonArray.toString());
    }

    private JSONArray createJSONArrayFromJSONTokener() {
        JSONArray jsonArray = null;
        try {
            String jsonString = "関係のない文字列" + "[200,20.5]";
            JSONTokener jsonTokener = new JSONTokener(jsonString);
            jsonTokener.skipTo('[');
            jsonArray = new JSONArray(jsonTokener);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return jsonArray;
    }

}