【Androidでデータやファイルと戯れる】JSONObjectをJSONTokenerから作成する
JSONとはRFC 4627とRFC 7159で規定される構造化された文字列のことです。
AndroidでJSONを取り扱うにはorg.jsonパッケージを使用します。
今回は、JSONObjectをJSONTokenerから作成します。
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;
}
}