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.