Gson
Googleが明確で使いやすいことに同意します。ただし、JSON 文字列からインスタンスを取得するための結果クラスを作成する必要があります。結果クラスを明確にできない場合は、次を使用しますjson-simple
。
// import static org.hamcrest.CoreMatchers.is;
// import static org.junit.Assert.assertThat;
// import org.json.simple.JSONObject;
// import org.json.simple.JSONValue;
// import org.junit.Test;
@Test
public void json2Object() {
// given
String jsonString = "{\"name\" : \"John\",\"age\" : \"20\","
+ "\"address\" : \"some address\","
+ "\"someobject\" : {\"field\" : \"value\"}}";
// when
JSONObject object = (JSONObject) JSONValue.parse(jsonString);
// then
@SuppressWarnings("unchecked")
Set<String> keySet = object.keySet();
for (String key : keySet) {
Object value = object.get(key);
System.out.printf("%s=%s (%s)\n", key, value, value.getClass()
.getSimpleName());
}
assertThat(object.get("age").toString(), is("20"));
}
と の長所と短所はGson
、json-simple
ユーザー定義の Java オブジェクト と の長所と短所によく似ていますMap
。定義するオブジェクトは、すべてのフィールド (名前とタイプ) に対して明確ですが、 より柔軟性が低くなりMap
ます。