IBM JSON4J を使用したリソース・メソッドの実装
RESTful サービスでは、JSON (JavaScript Object Notation) 形式を使用してコンテンツの取り込みおよび作成を実行できます。
このタスクについて
IBM JSON4J タイプは、サポートされるエンティティー・タイプです。本製品の ランタイム環境には JSON4J ライブラリーが含まれています。追加のライブラリー を組み込む必要はありません。
手順
JSON コンテンツの読み取りまたは書き込みを行うため、com.ibm.json.java.JSONObject クラスまたは com.ibm.json.java.JSONArray クラス
を、リソース・メソッドへのパラメーターとして、または戻りの型として、
追加します。
JSON4J タイプを要求エンティティー・パラメーターとして
使用するか、または、JSON4J タイプを戻して JSON メッセージを生成する
ことができます。以下に例を示します。
@POST
public com.ibm.json.java.JSONObject createGreetingForPerson(com.ibm.json.java.JSONObject person) {
String name = (String)person.get("name");
com.ibm.json.java.JSONObject greetingInJSONObj = new JSONObject(); greetingInJSONObj.put("greeting", "Hello " + name);
return greetingInJSONObj;
}
次に示すコード・スニペットのように JSON コンテンツ { "name" : "Bob Smith" } は要求として送信され、JSONObject person に保管されます。
次に示すコード・スニペットのように JSON コンテンツ { "greeting" : "Hello Bob Smith" } が応答で戻されます。
タスクの結果
JSON 要求とメッセージ・タイプを処理できるよう JSON4J タイプを実装できました。
例
次の例では、人のリストを戻すために使用する JSONArray クラス、および人に対する挨拶文を処理するために使用されるメソッドを示します。
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import com.ibm.json.java.JSONArray;
import com.ibm.json.java.JSONObject;
@Path("/people")
public class JSON4JResource {
@GET
public JSONArray getPersonArray() {
JSONArray personArray = new JSONArray();
JSONObject firstPerson = new JSONObject();
firstPerson.put("name", "John Doe");
personArray.add(firstPerson);
JSONObject secondPerson = new JSONObject();
secondPerson.put("name", "Fred Thompson");
personArray.add(secondPerson);
return personArray;
}
@Path("/greet")
@POST
public JSONObject createGreetingForPerson(JSONObject person) {
String name = (String)person.get("name");
JSONObject greetingInJSONObj = new JSONObject();
greetingInJSONObj.put("greeting", "Hello " + name);
return greetingInJSONObj;
}
}