【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();
}
}
}