Spring MVCのWebアプリケーションにおいて、Jacksonを利用してJSON形式のリクエストを受けることができます。
例
json2Viewの宣言:
@Configuration public class ViewConfiguration { @Bean(name="json2View") @Lazy(value=true) public View json2View() { MappingJackson2JsonView jsonView = new MappingJackson2JsonView(); jsonView.setExtractValueFromSingleKeyModel(true); jsonView.setModelKey("JsonModelKey"); return jsonView; } ..... } |
Json2Viewを利用して、JSONのresponseを戻します。
@RequestMapping(value="/user/{userId}", method=RequestMethod.GET) public ModelAndView findUser(@PathVariable("userId") String userId) { ModelAndView mav = new ModelAndView("json2View"); User user = userServcie.findUser(userId); mav.addObject("JsonModelKey", user); return mav; } |
注) Contextにおいて、"json2View"で宣言されたJson2Viewを探すために、下記ViewResolverを宣言してください。
@Bean public BeanNameViewResolver beanNameViewResolver(){ BeanNameViewResolver beanNameViewResolver = new BeanNameViewResolver(); beanNameViewResolver.setOrder(0); return beanNameViewResolver; } |
jQueryとJacksonを連携することもできます。下記に例を示します。
例
<html> <head> <script type="text/javascript" src="xxx/jquery.js"></script> <script> function displayJson(result) { $.each(result, function(field, value) { var newTh = $("<th></th>").text(field); $("#fields").append(newTh); var newTd = $("<td></td>").text(value); $("#values").append(newTd); }); } $(document).ready( function() { $.getJSON("xxx/user/ユーザID", function(result) { displayJson(result); }); }); </script> </head> <body> <table border="1"> <tr id="fields"></tr> <tr id="values"></tr> </table> </body> </html> |