2017-05-21 7 views
1

質問として、私のJersey webappが@Consumesアノテーションを使ってPOSTリクエストでJSONを消費し、それを変数に保存する最良の方法は何ですか? 私の方法は、このようなものです:Javaでapplication/json Jersey @Consumes MIMEタイプを解析する最善の方法は何ですか?

@Path("/postask") 
@POST 
@Consumes("application/json") 
@Produces("text/plain") 
public String postAsk(@Context ServletContext context) { 
    return Chatbot.ask(someinputgottenfrommyjson, context); 
} 

は、私は私のチャットボット方法に行くだけで1つの文字列の入力があることを知っていると私は、text/plainの種類を使用することができますが、それは無関係です。私は将来の拡張のためにこれをやっています。 私のアプリケーションは、{ "input": "Some Text Input provided by the client" }のようなJSON文字列を受け取り、その入力フィールドを取得して変数に保存する必要があります。 他の回答とチュートリアルを見ると、これを行う方法の1つは、JSONオブジェクトのフィールドを反映するクラスを作成して、Jerseyがオブジェクトに自動的に解析することです。多分私はこれについて間違っています。私は大規模なクラスを作成するので、このアプローチが嫌いです。別の方法はおそらくフォームパラメータを使うことですが、これがうまくいくかどうかはわかりません。これを行う簡単な方法はありますか? 申し訳ありません私の質問がばかだと、私は以前にジャージーやJavaのWebアプリケーションを使ったことはありません。

+0

_bulkyクラスの何が問題なのですか?文字列としてJSONドキュメントを解析するために書くことができるコードは、単純なパラメータクラスよりも冗長で理解しにくい可能性があります。パフォーマンスが心配な人は、できるだけ簡単な方法でコードを実装し、いくつかの数値を取得して、実際にあなたの必要性を緩和することを証明してください。読みやすいコードは速くするのは簡単ですが、他の方法ではほとんど動作しません。 – toniedzwiedz

+0

@toniedzweidzありがとう – aquarium

答えて

0

DAOを作成する方法を見つけました。メソッドをStringにして、それをorg.json.JSONObjectに解析することができます。

関連する問題