ページの先頭行へ戻る
Interstage Business Application Server オープンJavaフレームワークユーザーズガイド
FUJITSU Software

3.1.18 Jacksonサポート

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>