【Androidでデータやファイルと戯れる】JSONObjectをMapから作成する
JSONとはRFC 4627とRFC 7159で規定される構造化された文字列のことです。
AndroidでJSONを取り扱うにはorg.jsonパッケージを使用します。
今回は、JSONObjectをMapから作成します。
JSONObject(Map copyFrom)とは
JSONObjectにはMapを引数に持つコンストラクタがあります。引数に使うMapをMap
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; } }