Webアプリケーションにマップを渡す必要があります。JSONObject SpringとJacksonの代わりに
私はJSONObject
でマップをカプセル化するために使用されるが、私は春とジャクソンハウスを使用しておりますので。
pojoを維持する簡単な方法はありますか? MAPに注釈を付けることはできますか?
Webアプリケーションにマップを渡す必要があります。JSONObject SpringとJacksonの代わりに
私はJSONObject
でマップをカプセル化するために使用されるが、私は春とジャクソンハウスを使用しておりますので。
pojoを維持する簡単な方法はありますか? MAPに注釈を付けることはできますか?
あなたはすなわち、出力を操作する必要がある場合は、あなたがJSonArrayを使用することができ、オブジェクトのすべてのフィールドを提供したくない:
@RequestMapping(value = "/api/users", method = RequestMethod.GET)
public
@ResponseBody
String listUsersJson(ModelMap model) throws JSONException {
JSONArray userArray = new JSONArray();
for (User user : userRepository.findAll()) {
JSONObject userJSON = new JSONObject();
userJSON.put("id", user.getId());
userJSON.put("firstName", user.getFirstName());
userJSON.put("lastName", user.getLastName());
userJSON.put("email", user.getEmail());
userArray.put(userJSON);
}
return userArray.toString();
}
からの例を使用してそれ以外の場合依存関係にjacksonを追加し、コントローラメソッドを@ResponseBody
でアノテーションを設定すると、レスポンスは自動的にJSONにマップされます。簡単な例については、hereを参照してください。
を使用していますが、送信依頼(実際の言葉は分かりません)の場合は別のページに転送されません。 – user4127
ジャクソンはcom.fasterxml.jackson.core.JsonNode
であり、具体的なサブタイプはObjectNode
である。 これらのフォームはいわゆるTree Model
と呼ばれ、ジャクソンでJSONを処理する3つの方法のうちの1つで、他のいくつかのライブラリ(org.json
など)はこの方法のみを提供します。
代わりに代わりにJsonNode
を使用できるはずです。ライブラリを使用している場合は少しの点があります。org.json
それは遅く、古くなったAPIを持っています。
また、java.util.Map
を使用して、それを返すこともできます。 Jacksonは標準List
s、Map
sおよびその他のJDKタイプを正常に処理できます。
私はマップを使用しましたが、オブジェクトの戻り値はJSONオブジェクトではありません。 – user4127
あなたのプロジェクトであなたはジャックソンを利用できるようになりました。そして@ResponseBodyアノテーションを使ってコントローラーからマップを返すと、スプリングコンバーターによって自動的にjsonオブジェクトに変換されます –
私はマップをPOJOはmodel.addAttribute( "pojo"、pojo) – user4127