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

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

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

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

JSONObject(JSONTokener readFrom)とは

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

JSONObject(JSONTokener readFrom)を使う

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        JSONObject jsonObject = createJSONObjectFromJSONTokener();
    }

    private JSONObject createJSONObjectFromJSONTokener() {
        JSONObject jsonObject = null;
        try {
            String jsonString = "JSONとは関係のない文字列" + "{\"int\":200,\"double\":20.5}";
            JSONTokener jsonTokener = new JSONTokener(jsonString);
            jsonTokener.skipTo('{');
            jsonObject = new JSONObject(jsonTokener);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return jsonObject;
    }
}