【Androidでデータやファイルと戯れる】JSONObjectのクラスメソッドを使用する
JSONとはRFC 4627とRFC 7159で規定される構造化された文字列のことです。
AndroidでJSONを取り扱うにはorg.jsonパッケージを使用します。
今回は、JSONObjectのクラスメソッドを使用します。
JSONObjectのクラスメソッド
static String numberToString(Number number) | Number numberを文字列に変換して返却する |
static String quote(String data) | String dataをダブルクォーテーションで囲った文字列に変換して返却する |
static Object wrap(Object o) |
Object oの型に適した型に変換して返却します。
|
JSONObjectのクラスメソッドをを使う
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); useStaticMethod(); } private void useStaticMethod() { try { String intString = JSONObject.numberToString(100); String longString = JSONObject.numberToString(18000305032230531L); String doubleString = JSONObject.numberToString(100.5); String quote = JSONObject.quote("JSONObject.quote"); // nullをJSONObject(NULL)に変換して返却する。 Object wrapNull = JSONObject.wrap(null); // JSONArray、JSONObjectはそのまま返却する。 Object wrapJSONObject = JSONObject.wrap(new JSONObject()); Object wrapJSONArray = JSONObject.wrap(new JSONArray()); // NULLをJSONObject(NULL)に変換して返却する。 Object wrapNULL = JSONObject.wrap(JSONObject.NULL); // 配列やコレクションはJSONArrayに変換して返却する。 String[] strings = new String[]{"A","B","C"}; Object wrapArray = JSONObject.wrap(strings); Object wrapCollection = JSONObject.wrap(Arrays.asList(strings)); // マップはJSONObjectに変換して返却します。 Map<String , Object> map = new HashMap<>(); map.put("int" , 1); map.put("String" , "A"); Object wrapMap = JSONObject.wrap(map); // プリミティブ型や文字列はラッパークラスに変換して返却する。 Object wrapPrimitive = JSONObject.wrap(1); Object wrapString = JSONObject.wrap("String"); // JavaパッケージのクラスはtoString結果をStringに変換して返却します。 // それ以外のクラスはnullが返却されます。 Object wrapJavaClass = JSONObject.wrap(Calendar.getInstance()); Object wrapMyClass = JSONObject.wrap(new MyClass()); String aa = "aa"; } catch (JSONException e) { e.printStackTrace(); } } private static class MyClass { @Override public String toString() { return "{\"int\":200,\"double\":20.5}"; } } }