[Java] JSON Binding with JAX-RS - Moxy, JSON-P, Jackson, Jettison (TOTD #214)
Rabu, 24 Juli 2013
0
komentar
https://blogs.oracle.com/arungupta/entry/json_binding_with_jax_rs
プレゼンテーション中に頂く典型的な質問の一つに、「JAX-RSでJSONを使えるようにするにはどうすればいいの?」というものです。
JerseyでJSONを使えるようにする場合、基本的に3個のアプローチと、4個の異なるモジュールがあります。以下に簡単にまとめました。
MOXy | JSON-P | Jackson | Jettison | |
POJO-based JSON Binding | ○ | × | ○ | × |
JAXB-based JSON Binding | ○ | × | ○ | ○ |
Low-level JSON parsing & processing | × | ○ | × | ○ |
MOXyは、JerseyアプリケーションでサポートしているJSONバインディングのうちデフォルトかつ望ましい方法です。新しいサンプルが以下に追加されています。
glassfish~svn - Revision 62395: /branches/arun/javaee7-samples/samples/jaxrs/moxyリソースの定義は以下のように行います。
https://svn.java.net/svn/glassfish~svn/branches/arun/javaee7-samples/samples/jaxrs/moxy/
POJOは以下のように定義します。@Path("endpoint")
public class MyResource {
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public MyObject echoObject(MyObject mo) {
return mo;
}
}
アプリケーションのクラスはpublic class MyObject {
private String name;
private int age;
public MyObject() {
}
public MyObject(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
クライアントコードは、@ApplicationPath("webresources")
public class MyApplication extends Application {
}
JSON MOXyモジュール(jersey-media-moxy.jar)はクラスパスに入っているので、Jerseyが自動的にモジュールを発見し、JSONバインディングのサポートが有効になります。Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://"
+ request.getServerName()
+ ":"
+ request.getServerPort()
+ request.getContextPath()
+ "/webresources/endpoint");
System.out.println("POST request");
MyObject mo = target
.request()
.post(Entity.entity(new MyObject("Duke", 18), MediaType.APPLICATION_JSON), MyObject.class);
out.println("Received response: " + mo.getName() + ", " + mo.getAge() + "<br><br>");
すべてのアプローチおよびモジュールに関する詳細の説明は、以下のリンクからどうぞ。
Jersey 2.0 User Guide
Support for Common Media Type Representations
http://jersey.java.net/documentation/latest/media.html
TERIMA KASIH ATAS KUNJUNGAN SAUDARA
Judul: [Java] JSON Binding with JAX-RS - Moxy, JSON-P, Jackson, Jettison (TOTD #214)
Ditulis oleh Unknown
Rating Blog 5 dari 5
Semoga artikel ini bermanfaat bagi saudara. Jika ingin mengutip, baik itu sebagian atau keseluruhan dari isi artikel ini harap menyertakan link dofollow ke http://apk-zipalign.blogspot.com/2013/07/java-json-binding-with-jax-rs-moxy-json.html. Terima kasih sudah singgah membaca artikel ini.Ditulis oleh Unknown
Rating Blog 5 dari 5
0 komentar:
Posting Komentar