【Java】JSONObject と JsonObject をパースする
Java で Json(JSONObject と JsonObject) をパースしてみました。
JSONObject(org.json.JSONObject) と JsonObject(com.google.gson.JsonObject) は異なります。
パースの方法も異なります。
JSONObject (org.json.JSONObject)
コード
public static void main(String[] args) { String str = "{\"name\":\"Taro\",\"age\":21,\"friend\":[{\"name\":\"Jiro\",\"age\":20}]}"; try { JSONObject json = new JSONObject(str); System.out.println(json.toString(4)); } catch (JSONException e) { e.printStackTrace(); } }
出力結果
{ "age": 21, "friend": [{ "age": 20, "name": "Jiro" }], "name": "Taro" }
補足
「json.toString(4)」の 4 は固定です。
JsonObject (com.google.gson.JsonObject)
コード
public static void main(String[] args) { String str = "{\"name\":\"Taro\",\"age\":21,\"friend\":[{\"name\":\"Jiro\",\"age\":20}]}"; JsonParser parser = new JsonParser(); JsonObject json = parser.parse(str).getAsJsonObject(); Gson gson = new GsonBuilder().setPrettyPrinting().create(); System.out.println(gson.toJson(json)); }
出力結果
{ "name": "Taro", "age": 21, "friend": [ { "name": "Jiro", "age": 20 } ] }
まとめ
それっぽく出力するのは難しくはないです。
ただしインデントや出力順番が異なりますので注意してください。