【Androidでデータやファイルと戯れる】JSONObjectをMapから作成する

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

JSONとはRFC 4627RFC 7159で規定される構造化された文字列のことです。

AndroidでJSONを取り扱うにはorg.jsonパッケージを使用します。
今回は、JSONObjectをMapから作成します。

JSONObject(Map copyFrom)とは

JSONObjectにはMapを引数に持つコンストラクタがあります。
引数に使うMapをMapと宣言することでString型のnameと様々な型のvalueを設定することができます。
String・Boolean・Integer・Long・Double・NULL・nullやオブジェクト(Map)、アレイ(List・配列)を渡すことでJSONObjectを作成することができます。

JSONObject(Map copyFrom)を使う

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        JSONObject jsonObject = createJSONFromMap();
    }

    private JSONObject createJSONFromMap() {
        Map<String , Object> map = new HashMap<>();
        map.put("boolean" , Boolean.TRUE);
        map.put("double" , 10.5);
        map.put("int" , 100);
        map.put("long" , 18000305032230531L);
        map.put("string" , "string");
        Map<String , Object> object = new HashMap<>();
        object.put("object_1" ,1);
        object.put("object_2" ,2);
        object.put("object_3" ,3);
        map.put("object" , object);
        List<Integer> array = new ArrayList<>();
        array.add(1);
        array.add(2);
        array.add(3);
        map.put("array" , array);
        int[] intArray = new int[3];
        intArray[0] = 100;
        intArray[1] = 200;
        intArray[2] = 300;
        map.put("int array" , intArray);
        map.put("null" , null);

        JSONObject jsonObject = new JSONObject(map);
        return jsonObject;
    }
}