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の例をデコードする]