マップを Web アプリケーションに戻す必要があります。
マップを JSONObject にカプセル化することに慣れています
しかし、私はSpringとJackson Hausを使用しているので.
pojo を維持する簡単な方法はありますか? MAP に注釈を付けることができますか?
マップを Web アプリケーションに戻す必要があります。
マップを JSONObject にカプセル化することに慣れています
しかし、私はSpringとJackson Hausを使用しているので.
pojo を維持する簡単な方法はありますか? MAP に注釈を付けることができますか?
ジャクソンにはcom.fasterxml.jackson.core.JsonNode
、および のような特定のサブタイプがありObjectNode
ます。これらの形式はいわゆるTree Model
であり、Jackson で JSON を処理する 3 つの方法の 1 つです。他の一部のライブラリ ( などorg.json
) は、この方法のみを提供します。
JsonNode
したがって、代わりに使用できるはずです。org.json
ライブラリを使用する意味はほとんどありません。遅く、API が古くなっています。
または、を使用java.util.Map
してそれを返すこともできます。Jackson は、標準List
の s、Map
s、およびその他の JDK タイプを問題なく処理できます。
出力を操作する必要がある場合、つまり、オブジェクトのすべてのフィールドを提供したくない場合は、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 に自動的にマップされます。簡単な例については、こちらを確認してください。