【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}";
}
}
}