1

我想使用 Eclipse 学习 Java 中的 JSON 数据存储,所以我搜索了很多。

我找到了 JSON.simpleGSON。这些是不错的选择吗?

我去了Properties >> Java Build Path >> Add External JARs。我添加了json-simple-1.1.1.jargoogle-gson-2.2.4-release.zip。这样对吗?JavaDoc 位于何处?

主要问题与此处找到的示例有关:JSON.simple example – Read and write JSON,它教授 JSON.simple。我写了以下代码:

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()oradd()时,它们是在超类中定义的,未正确参数化。

您可以做的是添加@SuppressWarnings("unchecked")到容器中。

如何美化我的 JSON?

JSON.simple 无法做到这一点,但 GSON 可以:

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