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