JSON.simple
は、JSONの処理、JSONデータの読み取りと書き込み、およびhttp://www.ietf.org/rfc/rfc4627の完全準拠のためのシンプルなJavaライブラリです。 txt[JSON仕様(RFC4627)]。
このチュートリアルでは、
JSON.simple
を使用してファイルからJSONデータを読み書きする方法を示します。
1. JSON.simple依存関係
-
JSON.simple ** はMavenセントラルリポジトリから入手できます。
pom.xml
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
2. JSONをファイルに書き込む
以下の例では、JSONデータを
JSONObject`と
JSONArray`を使って書き込み、それを “f:\ test.json”という名前のファイルに保存します。
JsonSimpleWriteExample.java
package com.mkyong;
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", "mkyong.com");
obj.put("age", new Integer(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("f:\\test.json")) {
file.write(obj.toJSONString());
file.flush();
} catch (IOException e) {
e.printStackTrace();
}
System.out.print(obj);
}
}
出力
f:\\ test.json
{
"age":100,
"name":"mkyong.com",
"messages":["msg 1","msg 2","msg 3"]}
3.ファイルからJSONを読み込む
上記の生成されたJSONファイル “f:\\ test.json”を読み込むためには `JSONParser`を使い、それぞれの値を表示してください。
JsonSimpleReadExample.java
package com.mkyong;
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.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Iterator;
public class JsonSimpleReadExample {
public static void main(String[]args) {
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("f:\\test.json"));
JSONObject jsonObject = (JSONObject) obj;
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<String> iterator = msg.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
}
出力
{"name":"mkyong.com","messages":["msg 1","msg 2","msg 3"],"age":100}
mkyong.com
100
msg 1
msg 2
msg 3
参考文献
エンコードJSONの例]。
http://code.google.com/p/json-simple/wiki/DecodingExamples
[JSON.simple
JSONの例をデコードする]