私は最初の答えに同意しません。REST パラダイムは、操作ではなくオブジェクトを操作できるように開発されました。
私にとって最も賢明なアプローチは、クライアント側で Bean を宣言し、json 応答を解析してそれらを介して要求する場合です。シリアライゼーション/デシリアライゼーションにはGSON ライブラリを使用することをお勧めします。JsonObject
/JsonArray
が最良の選択になることはほとんどありません。
使用しようとしている操作の例を挙げていただければ、より正確にお手伝いできるかもしれません。
編集: GSONの例もいくつか挙げてみましょう。このスレッドを使用して、さまざまなライブラリを比較してみましょう。
ほとんどの場合、REST サービスはオブジェクトと通信します。ショップへの参照がある商品の投稿を作成するとします。
{ "name": "Bread",
"price": 0.78,
"produced": "08-12-2012 14:34",
"shop": {
"name": "neighbourhood bakery"
}
}
次に、次の Bean を宣言すると:
public class Product {
private String name;
private double price;
private Date produced;
private Shop shop;
// Optional Getters and setters. GSON uses reflection, it doesn't need them
// However, better declare them so that you can access the fields
}
public class Shop {
private String name;
// Optional Getters and setters. GSON uses reflection, it doesn't need them
// However, better declare them so that you can access the fields
}
次を使用してjsonを逆シリアル化できます。
String jsonString; // initialized as you can
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("MM-dd-yyyy HH:mm"); // setting custom date format
Gson gson = gsonBuilder.create();
Product product = gson.fromJson(jsonString, Product.class);
// Do whatever you want with the object it has its fields loaded from the json
一方、より簡単に json にシリアル化できます。
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setDateFormat("MM-dd-yyyy HH:mm"); // setting custom date format
Gson gson = gsonBuilder.create();
String jsonString = gson.toJson(product);