JAVA

【JAVA】JSONデータの取得、作成方法

Json-libを使用してJAVAにてJSONデータを取得・作成します。

 

システム要件

Json-libを使用するには

  • jakarta commons-lang 2.5以上
  • jakarta commons-beanutils 1.8.0以上
  • jakarta commons-collections 3.2.1以上
  • jakarta commons-logging 1.1.1以上
  • ezmorph 1.0.6以上

が必要になるそうです。

 

ダウンロード

Json-libをこちらよりダウンロードします。

json-lib-2.4が現時点最新になります。



使用方法

ダウンロードしたjson-libをライブラリに格納します。

 

読込

以下のJSONがGETパラメータ(パラメータ名:json)で送られてきた場合

[text]
{
"boolean": true,
"null": null,
"number": 123,
"string": "Hello World"
"array": [
1,
2,
3
],
"object": {
"a": "b",
"c": "d",
"e": "f"
},
}
[/text]

 

[java]
String strJson = (String)request.getParameter("json");
JSONObject jsonObject = JSONObject.fromObject(strJson);
//各項目の取得
System.out.println(jsonObject.get("boolean"));
System.out.println(jsonObject.get("null"));
System.out.println(jsonObject.get("number"));
System.out.println(jsonObject.get("string"));
//配列の取得
if (jsonObject.get("array") != null) {
JSONArray array = JSONArray.fromObject(jsonObject.get("array"));
for(int i = 0; i < array.size(); i++){
//配列の表示
System.out.println(answerDataList.get(i).toString());

}
}
//オブジェクトの取得
if (jsonObject.get("object") != null) {
JSONArray objectrDataList = JSONArray.fromObject(jsonObject.get("object"));
for(int i = 0; i < objectrDataList.size(); i++){
JSONObject objectrDataJson = objectrDataList.get(i);
//オブジェクト内のデータの取得
System.out.println(objectrDataJson.get("a"));
System.out.println(objectrDataJson.get("c"));
System.out.println(objectrDataJson.get("e"));
}
}

//JSONデータはbinaryデータの取得も可能です。
if(jsonObject.get("binaryData") != null){
byte[] binaryData = (byte[])jsonObject.get("binaryData");
}
[/java]

jsonObjectはObject型なので、キャストすれば何にでもなれます。



書込

今回はPrintWriterにて出力を想定して作成します。

[java]
PrintWriter out;
try {
// JSONデータの作成
JSONObject json = new JSONObject();
//boolean
boolean bl = true;
json.accumulate("boolean", bl);
//null
String str1 = null;
json.accumulate("boolean", str1);
//number
int i = 1;
json.accumulate("number", i);
//String
String str2
json.accumulate("string", str2);
//配列
int[] i2 = {1,2,3};
json.accumulate("array", i2);
//オブジェクト
HashMap<String, Object> ObjectData = new HashMap<String, Object>();
ObjectData.put("a", "b" );
ObjectData.put("c", "d" );
ObjectData.put("e", "f" );
List<HashMap<String, Object>> ObjectDataList = new ArrayList<HashMap<String, Object>>();
ObjectDataList.add(ObjectData);
json.accumulate("object", ObjectDataList);
out.print(json);
}catch (IOException e) {
throw new SystemException(e);
}
[/java]

出来上がったJSONデータは……

こちらより確認することができます。

-JAVA
-, , ,

© 2020 かえでBlog