1

Eclipse を使用して Java での JSON データ ストレージを学習したいので、ググってみました。

JSON.simpleGSONが見つかりました。それらは良い選択ですか?

に行きましたProperties >> Java Build Path >> Add External JARsjson-simple-1.1.1.jargoogle-gson-2.2.4-release.zipを追加しました。そうですか?JavaDoc はどこにありますか?

主な問題は、ここにある例に関するものです: JSON.simple example – JSON.simple について教えている JSON の読み書き。次のコードを書きました。

JSONObject object = new JSONObject();
JSONArray array = new JSONArray();
array.add("Bob");
array.add("John");
object.put("nicknames", array);
object.put("from", "US");
object.put("age", 35);
try {
    String path = "";
    FileWriter file = new FileWriter(path);
    String json = object.toJSONString();
    file.write(json);
    file.close();
} catch (IOException io) {
    // Fail
}

しかし、次の警告が表示されます。これらはどういう意味ですか?

型の安全性: メソッド add(Object) は生の型 ArrayList に属します。ジェネリック型 ArrayList への参照は、「JSONArray.add」でパラメータ化する必要があります

型の安全性: メソッド put(Object, Object) は生の型 HashMap に属します。ジェネリック型 HashMap<K,V> への参照は、「JSONObject.put」でパラメーター化する必要があります

余談ですが、JSON をきれいにするにはどうすればよいですか?

4

1 に答える 1

2

JSON.simpleGSONが見つかりました。それらは良い選択ですか?

現時点では、前者がとても気に入っていますが、後者の方が機能が多く、広く使用されており、常に最新の状態になっています。

JavaDoc はどこにありますか?

JSON.simple については、サイトでこの回答を参照してください。GSON については、このリンクをたどってください。

いくつかの警告が表示されます。彼らはどういう意味ですか?

これらのクラスは、スーパークラスの型パラメーターなしで宣言されます。

public class JSONObject extends HashMap {
    // ...
}

public class JSONArray extends ArrayList {
    // ...
}

put()またはを呼び出すとadd()、それらは適切にパラメータ化されていないスーパークラスで定義されます。

あなたができることは@SuppressWarnings("unchecked")、コンテナに追加することです。

JSON を整形するにはどうすればよいですか?

JSON.simple はこれを行うことができませんが、GSON は次のことができます。

Gson gson = new GsonBuilder().setPrettyPrinting().create();
于 2015-09-11T10:57:21.840 に答える