JSON.simple для чтения и записи JSON данных

JSON.simple — простая Java библиотека для работы с данными в формате JSON, полностью совместимая со спецификацией RFC4627 — The application/json Media Type for JavaScript Object Notation (JSON).


При работе с библиотекой JSON.simple применяются собственные объекты для представления данных. Если Вам требуется переводить в JSON объекты своих типов данных или восстанавливать состояние объектов своих типов данных из JSON представления, то следует рассмотреть варианты использования библиотек Jackson или Google Gson.

Добавление JSON.simple к проекту

Для добавления библиотеки к своему проекту ее можно скачать с официального сайта проекта.

Если Вы используете maven, до для подключения JSON.simple надо определить зависимость:

<dependency>
    <groupId>com.googlecode.json-simple</groupId>
    <artifactId>json-simple</artifactId>
    <version>1.1.1</version>
</dependency>

Запись JSON данных в файл

Пример формирования JSON данных с помощью объектов типа JSONObject и JSONArray с последующей записью результирующей JSON строки в файл file.json.

package ru.j4web.examples.java.json.jsonsimpleexample;

import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class JsonSimpleExample {
    
    private static final String FILENAME= "c:\Projects\J4Web.Ru\Src\"
            + "JavaJSON\JsonSimpleExample\file.json";
    
    public static void main(String[] args) {
        JSONObject object = new JSONObject();
        object.put("name", "j4web");
        object.put("site", "http://j4web.ru");
        object.put("age", 2);
        JSONArray messages = new JSONArray();
        messages.add("Message 1");
        messages.add("Message 2");
        messages.add("Message 3");
        object.put("messages", messages);
        try (FileWriter writer = new FileWriter(FILENAME)){
            writer.write(object.toJSONString());
            writer.flush();
            writer.close();
        } catch (IOException ex) {
            Logger.getLogger(JsonSimpleExample.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
    }
}
{"site":"http://j4web.ru","age":2,"name":"j4web","messages":["Message 1","Message 2","Message 3"]}

Чтение JSON данных из файла

Пример использования объекта типа JSONParser для чтения данных в формате JSON. В качестве источника данных мы будем использовать файл file.json, сгенерированный в предыдущем примере.

package ru.j4web.examples.java.json.jsonsimpleparserexample;

import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class JsonSimpleParserExample {
    
    private static final String FILENAME = "c:\Projects\J4Web.Ru\Src\"
            + "JavaJSON\JsonSimpleParserExample\file.json";
    
    public static void main(String[] args) {
        JSONParser parser = new JSONParser();
        try {
            JSONObject object = (JSONObject) parser.parse(
                    new FileReader(FILENAME));
            // Получаем имя
            String name = (String) object.get("name");
            System.out.println("Name: " + name);
            // Получаем сайт
            String site = (String) object.get("site");
            System.out.println("Site: " + site);
            // Получаем возраст
            Long age = (Long) object.get("age");
            System.out.println("Name: " + age);
            // Получаем сообщения
            JSONArray messages = (JSONArray) object.get("messages");
            System.out.println("Messages:");
            Iterator<String> iterator = messages.iterator();
            while(iterator.hasNext()) {
                System.out.println("> " + iterator.next());
            }
        } catch (IOException | ParseException ex) {
            Logger.getLogger(JsonSimpleParserExample.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
    }
}
Name: j4web
Site: http://j4web.ru
Name: 2
Messages:
> Message 1
> Message 2
> Message 3

Полезная информация

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*