Ressourcenmethode mit IBM JSON4J implementieren
RESTful-Services können mit dem JSON-Format (JavaScript Object Notation) Inhalt konsumieren und erstellen.
Informationen zu diesem Vorgang
IBM JSON4J-Typen sind unterstützte Entitätstypen. Die JSON4J-Bibliothek ist in der Laufzeitumgebung dieses Produkts enthalten. Sie müssen keine zusätzlichen Bibliotheken packen.
Vorgehensweise
Fügen Sie Ihrer Ressourcenmethode eine Klasse "com.ibm.json.java.JSONObject" oder eine Klasse "com.ibm.json.java.JSONArray"
als Parameter oder als Rückgabetyp zum Lesen oder Schreiben von JSON-Inhalt hinzu.
Sie können JSON4J-Typen als Anforderungsentitätsparameter verwenden, oder Sie können JSON4J-Typen zurückgeben,
um JSON-Nachrichten zu erzeugen, z. B.:
@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-Inhalt wie { "name" : "Bob Smith" } wird in der Anforderung gesendet und im JSONObject person gespeichert.
JSON-Inhalt wie { "greeting" : "Bob Smith" } wird in der Antwort zurückgegeben.
Ergebnisse
Sie haben JSON4J-Typen zur Verarbeitung von JSON-Anforderungen und -Nachrichtentypen implementiert.
Beispiel
Das folgende Beispiel veranschaulicht eine JSONArray-Klasse, mit der eine Personenliste zurückgegeben wird, und eine Methode,
mit der eine Begrüßung für eine Person zurückgegeben wird.
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;
}
}