json-简单的例子

时间:2020-02-23 14:35:22  来源:igfitidea点击:

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