【Androidでデータやファイルと戯れる】JSONArrayの内容を操作する
JSONとはRFC 4627とRFC 7159で規定される構造化された文字列のことです。
AndroidでJSONを取り扱うにはorg.jsonパッケージを使用します。
今回は、JSONArrayの内容を操作します。
JSONArrayを操作するメソッド
JSONArray内のデータを操作するメソッドには様々な種類があります。これらのメソッドを利用してJSONArrayインスタンス内の構造や状態を確認することができます。
int length() | JSONArrayインスタンスに含まれる要素数を返却されます。 |
boolean isNull(int index) | 指定した要素番号(index)に値が設定されていない場合、またはNULLが設定されている場合はtrueが返却されます。 |
String join(String separator) | JSONArrayインスタンスの内容をseparatorで結合した文字列を返却されます。 |
Object remove(int index) | JSONArrayインスタンスから指定した要素番号(index)の値を除去し、除去した値を返却されます。 |
JSONObject toJSONObject(JSONArray names) |
JSONArrayインスタンスと引数のnamesを使用して、JSONObjectを作成します。 この時、同一の要素番号の値がkey-valueペア(JSONArrayインスタンスのi番目とnamesのi番目)になります。 |
String toString() |
JSONArrayインスタンスの内容をJSON文字列として返却します。 |
String toString(int indentSpaces) |
JSONArrayインスタンスの内容を読み易いJSON文字列として返却します。 |
JSONArrayを操作するメソッドを使用する
public class JsonArrayActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); JSONArray jsonArray = createJSON(); operationJSONArray(jsonArray); } private void operationJSONArray(JSONArray jsonArray) { try { Log.d("JSONArray", "length : " + jsonArray.length()); Log.d("JSONArray", "isNull index(0) : " + jsonArray.isNull(0)); Log.d("JSONArray", "isNull index(100) : " + jsonArray.isNull(100)); Log.d("JSONArray", "join : " + jsonArray.join(",")); Log.d("JSONArray", "remove : " + jsonArray.remove(0)); JSONArray names = new JSONArray(); names.put("NAME A"); names.put("NAME B"); names.put("NAME C"); Log.d("JSONArray", "toJSONObject : " + jsonArray.toJSONObject(names)); Log.d("JSONArray", "toString : " + jsonArray.toString()); Log.d("JSONArray", "toString indentSpaces(1) : " + jsonArray.toString(1)); } catch (JSONException e) { e.printStackTrace(); } } }