Поиск по сайту:

json-простой пример


json-simple — это простой инструментарий Java для JSON. json-simple полностью соответствует спецификации JSON (RFC4627).

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 возвращает JSON в формате String, который мы можем записать в файл. Для записи списка в ключ JSON мы можем использовать org.json.simple.JSONArray.

package com.journaldev.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", "Pankaj 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":"Pankaj Kumar","age":32}

Обратите внимание на основной метод @SuppressWarnings(unchecked)? Это было сделано, чтобы избежать предупреждений, связанных с безопасностью типов. JSONObject расширяет HashMap, но не поддерживает Generics, поэтому Eclipse IDE выдает предупреждение, как показано ниже.

Безопасность типов: метод put(Object, Object) относится к необработанному типу HashMap. Ссылки на универсальный тип HashMap должны быть параметризованы.

json-простой пример чтения JSON из файла

Для чтения JSON из файла мы должны использовать класс org.json.simple.parser.JSONParser. Метод JSONParser parse возвращает JSONObject. Затем мы можем получить значения, передав имена ключей. Ниже приведен простой пример json для чтения JSON из файла.

package com.journaldev.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 = Pankaj Kumar
Age = 32
City = New York
City = Bangalore
City = San Francisco

Это все для быстрого обзора json-simple. Однако, если вы хотите работать со сложными данными JSON, вам следует использовать JSR353, который был добавлен в Java 7.