読者です 読者をやめる 読者になる 読者になる

/* あとでなおす */

友達募集中

【Java】JSONObject と JsonObject をパースする

JavaJson(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
    }
  ]
}

まとめ

それっぽく出力するのは難しくはないです。
ただしインデントや出力順番が異なりますので注意してください。