JSON.simple例 - JSONの読み書き

JSON.simple – Read and write JSON

JSON.simpleは、JSON処理、JSONデータの読み取りと書き込み、およびJSON specification (RFC4627)への完全準拠のためのシンプルなJavaライブラリです。

Warning
この記事では、古いJSON.simple 1.xを使用しています。これは非推奨であり、作成者によって保守されていません。 このアップグレードされた記事にアクセスしてください–JSON.simple 3.x – How to parse JSON

Why not Jackson or Gson?
この記事を読むことに興味があるかもしれません–JacksonまたはGsonでJSONを解析する方法

1. JSON.simpleをダウンロードする

pom.xml

    
        com.googlecode.json-simple
        json-simple
        1.1.1
    

2. JSONをファイルに書き込む

JsonSimpleWriteExample.java

package com.example;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

import java.io.FileWriter;
import java.io.IOException;

public class JsonSimpleWriteExample {

    public static void main(String[] args) {

        JSONObject obj = new JSONObject();
        obj.put("name", "example.com");
        obj.put("age", 100);

        JSONArray list = new JSONArray();
        list.add("msg 1");
        list.add("msg 2");
        list.add("msg 3");

        obj.put("messages", list);

        try (FileWriter file = new FileWriter("c:\\projects\\test.json")) {
            file.write(obj.toJSONString());
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.print(obj);

    }

}

出力

ターミナル

{"name":"example.com","messages":["msg 1","msg 2","msg 3"],"age":100}

c:\projects\test.json

{"name":"example.com","messages":["msg 1","msg 2","msg 3"],"age":100}

3. JSONをファイルに読み込む

JsonSimpleReadExample.java

package com.example;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Iterator;

public class JsonSimpleReadExample {

    public static void main(String[] args) {

        JSONParser parser = new JSONParser();

        try (Reader reader = new FileReader("c:\\projects\\test.json")) {

            JSONObject jsonObject = (JSONObject) parser.parse(reader);
            System.out.println(jsonObject);

            String name = (String) jsonObject.get("name");
            System.out.println(name);

            long age = (Long) jsonObject.get("age");
            System.out.println(age);

            // loop array
            JSONArray msg = (JSONArray) jsonObject.get("messages");
            Iterator iterator = msg.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
            }

        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }

    }


}

出力

ターミナル

{"name":"example.com","messages":["msg 1","msg 2","msg 3"],"age":100}
example.com
100
msg 1
msg 2
msg 3