json-简单的例子
json-simple是用于JSON的简单Java工具包。
json-simple库完全符合JSON规范(RFC4627)。
json-简单
json-simple内部使用Map和List进行JSON处理。
我们可以使用json-simple来解析JSON数据以及将JSON写入文件。
json-simple的最佳功能之一是它不依赖任何第三方库。
json-simple是非常轻量级的API,可以很好地满足简单的JSON要求。
json-简单的Maven
我们可以从这里下载json-simple库到我们的项目中。
由于json-simple在maven中央存储库中可用,因此最好的方法是在pom.xml文件中添加其依赖项。
<dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> <version>1.1.1</version> </dependency>
json-简单的示例,将JSON写入文件
json-simple API中最重要的类是" org.json.simple.JSONObject"。
我们创建JSONObject的实例,并将键值对放入其中。
JSONObject的toJSONString方法返回可写入文件的String格式的JSON。
为了将列表写入JSON密钥,我们可以使用org.json.simple.JSONArray
。
package com.theitroad.json.write; import java.io.FileWriter; import java.io.IOException; import org.json.simple.JSONArray; import org.json.simple.JSONObject; public class JsonSimpleWriter { @SuppressWarnings("unchecked") public static void main(String[] args) { JSONObject obj = new JSONObject(); obj.put("name", "hyman Kumar"); obj.put("age", new Integer(32)); JSONArray cities = new JSONArray(); cities.add("New York"); cities.add("Bangalore"); cities.add("San Francisco"); obj.put("cities", cities); try { FileWriter file = new FileWriter("data.json"); file.write(obj.toJSONString()); file.flush(); file.close(); } catch (IOException e) { e.printStackTrace(); } System.out.print(obj.toJSONString()); } }
上面的类将写入data.json
,下面是该文件的JSON内容。
{"cities":["New York","Bangalore","San Francisco"],"name":"hyman Kumar","age":32}
注意主方法上的@SuppressWarnings(" unchecked")"注释吗?这样做是为了避免与类型安全有关的警告。
JSONObject扩展了HashMap,但不支持泛型,因此Eclipse IDE发出如下警告。
类型安全:put(Object,Object)方法属于原始类型HashMap。
对通用类型HashMap <K,V>的引用应参数化
json-简单的示例,从文件中读取JSON
为了从文件读取JSON,我们必须使用org.json.simple.parser.JSONParser
类。
JSONParser的parse方法返回JSONObject。
然后,我们可以通过传递键名来检索值。
以下是JSON简单示例,可从文件读取JSON。
package com.theitroad.json.write; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.Reader; import java.util.Iterator; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class JsonSimpleReader { public static void main(String[] args) throws ParseException, FileNotFoundException, IOException { JSONParser parser = new JSONParser(); Reader reader = new FileReader("data.json"); Object jsonObj = parser.parse(reader); JSONObject jsonObject = (JSONObject) jsonObj; String name = (String) jsonObject.get("name"); System.out.println("Name = " + name); long age = (Long) jsonObject.get("age"); System.out.println("Age = " + age); JSONArray cities = (JSONArray) jsonObject.get("cities"); @SuppressWarnings("unchecked") Iterator<String> it = cities.iterator(); while (it.hasNext()) { System.out.println("City = " + it.next()); } reader.close(); } }
上面的json-simple示例产生以下输出。
Name = hyman Kumar Age = 32 City = New York City = Bangalore City = San Francisco