我想用Eclipse学习Java中的JSON数据存储,所以我搜索了很多。
我找到了JSON.simple和GSON。这些都是不错的选择吗?
我去了Properties >> Java Build Path >> Add External JARs
。我添加了json-simple-1.1.1.jar和google-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("Joiner");
array.add("System");
object.put("nicknames", array);
object.put("from", "Italy");
object.put("age", 15);
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的引用应该在' JSONObject.put'
上进行参数化
另一方面,我如何美化我的JSON?
答案 0 :(得分:1)
我找到了JSON.simple和GSON。这些都是不错的选择吗?
目前,我非常喜欢前者,但后者有更多功能,使用更广泛,并且始终是最新的。
JavaDoc在哪里?
对于JSON.simple,请参阅网站上的this answer。 对于GSON,请关注this link。
我收到一些警告。他们是什么意思?
声明这些类的超类没有类型参数:
public class JSONObject extends HashMap {
// ...
}
public class JSONArray extends ArrayList {
// ...
}
当您致电put()
或add()
时,它们会在超类中定义,而超类未正确参数化。
您可以做的是将@SuppressWarnings("unchecked")
添加到容器中。
我如何美化我的JSON?
JSON.simple不能这样做,但GSON可以:
Gson gson = new GsonBuilder().setPrettyPrinting().create();