JSON.simple — это легкая библиотека обработки JSON, которую можно использовать для чтения и записи файлов и строк JSON. Закодированный/декодированный JSON будет полностью соответствовать спецификации JSON( RFC4627 ).
Библиотека JSON.simple довольно старая и не обновлялась с марта 2012 года. Библиотека Google GSON — хороший вариант для чтения и записи JSON.
В этом руководстве по Java JSON мы сначала рассмотрим краткий пример записи в файл JSON, а затем прочитаем JSON из файла.
1. Возможности JSON.simple
- Полное соответствие спецификации JSON(RFC4627).
- Поддерживает кодирование, декодирование/анализ и экранирование JSON.
- Простота использования за счет повторного использования интерфейсов «Карта» и «Список».
- Поддерживает потоковый вывод текста JSON.
- Высокая производительность.
- Нет зависимости от внешних библиотек.
2. Json.simple Maven
Обновите pom.xml с помощью зависимости json-simple maven.
<зависимость><groupId>com.googlecode.json-simple</groupId><artifactId>json-simple</artifactId><версия>1.1.1</версия></зависимость>
3. Записать JSON в файл
Чтобы записать JSON-тест в файл, мы будем работать в основном с двумя классами:
- JSONArray : Для записи данных в массивы json. Используйте его метод add() для добавления объектов типа JSONObject.
- JSONObject : Для записи объектов json. Используйте его метод put() для заполнения полей.
После заполнения указанных выше объектов используйте экземпляр FileWriter для записи файла JSON.
пакет com.howtodoinjava.demo.jsonsimple;импорт java.io.FileWriter;импорт java.io.IOException;импорт org.json.simple.JSONArray;импорт org.json.simple.JSONObject;публичный класс WriteJSONExample{@SuppressWarnings("не отмечено")public static void main( String[] args ){//Первый сотрудникJSONObject employeeDetails = new JSONObject();employeeDetails.put("firstName", "Локеш");employeeDetails.put("lastName", "Гупта");employeeDetails.put("веб-сайт", "howtodoinjava.com");JSONObject employeeObject = new JSONObject();employeeObject.put("сотрудник", employeeDetails);//Второй сотрудникJSONObject employeeDetails2 = новый JSONObject();employeeDetails2.put("firstName", "Брайан");employeeDetails2.put("фамилия", "Шульц");employeeDetails2.put("веб-сайт", "example.com");JSONObject employeeObject2 = new JSONObject();employeeObject2.put("сотрудник", employeeDetails2);//Добавить сотрудников в списокJSONArray employeeList = new JSONArray();employeeList.add(employeeObject);employeeList.add(employeeObject2);//Записать JSON-файлпопробуйте(файл FileWriter = новый FileWriter("employees.json")) {//Мы можем записать любой экземпляр JSONArray или JSONObject в файлфайл.write(employeeList.toJSONString());файл.flush();} поймать(IOException e) {e.printStackTrace();}}}
Вывод программы.
[{"сотрудник": {"firstName": "Локеш","lastName": "Гупта","веб-сайт": "howtodoinjava.com"}},{"сотрудник": {"firstName": "Брайан","фамилия": "Шульц","веб-сайт": "example.com"}}]
4. Чтение JSON из файла
Чтобы прочитать JSON из файла, мы будем использовать JSON-файл, созданный в предыдущем примере.
- Прежде всего, мы создадим экземпляр JSONParser для анализа JSON-файла.
- Используйте FileReader для чтения JSON-файла и передачи его парсеру.
- Начните читать объекты JSON один за другим, основываясь на их типе, т. е. JSONArray и JSONObject.
пакет com.howtodoinjava.demo.jsonsimple;импортировать java.io.FileNotFoundException;импорт java.io.FileReader;импорт java.io.IOException;импорт org.json.simple.JSONArray;импорт org.json.simple.JSONObject;импорт org.json.simple.parser.JSONParser;импорт org.json.simple.parser.ParseException;публичный класс ReadJSONExample{@SuppressWarnings("не отмечено")public static void main(String[] args){//Объект парсера JSON для анализа прочитанного файлаJSONParser jsonParser = новый JSONParser();попробуйте(FileReader reader = new FileReader("employees.json")){//Чтение файла JSONОбъект obj = jsonParser.parse(reader);JSONArray employeeList =(JSONArray) obj;System.out.println(employeeList);//Итерация по массиву сотрудниковemployeeList.forEach( emp -> parseEmployeeObject((JSONObject) emp ) );} поймать(FileNotFoundException e) {e.printStackTrace();} поймать(IOException e) {e.printStackTrace();} поймать(ParseException e) {e.printStackTrace();}}private static void parseEmployeeObject(JSONObject сотрудник){// Получить объект сотрудника в спискеJSONObject employeeObject =(JSONObject) employee.get("сотрудник");//Получить имя сотрудникаСтрока firstName =(Строка) employeeObject.get("firstName");System.out.println(firstName);//Получить фамилию сотрудникаString lastName =(String) employeeObject.get("lastName");System.out.println(фамилия);//Получить имя веб-сайта сотрудникаСтрока веб-сайт =(Строка) employeeObject.get("веб-сайт");System.out.println(веб-сайт);}}
Вывод программы.
[{"employee":{"firstName":"Локеш", "lastName":"Гупта", "website":"howtodoinjava.com"}},{"employee":{"firstName":"Брайан", "lastName":"Шульц", "website":"example.com"}}]ЛокешГуптаhowtodoinjava.comБрайанШульцпример.com
Ссылка:
JSON.simple на Git
JSON.simple Архив Google Code