Jackson 2.0用法

json-lib转换复杂数据结构时,老是报异常,转用到Jackson,现在是2.6.4,网上教程大部分是1.x,这里简单描述一下2.0的用法,只有bean转json,其他方法请参考官网(http://wiki.fasterxml.com/JacksonInFiveMinutes)


import com.fasterxml.jackson.databind.ObjectMapper;
……
public class SearchAction extends BaseAction {
……
/**
     * Open Api: 特定资源检索开放接口
     * @param request
     * @param response
     */
    public void find_api(HttpServletRequest request, HttpServletResponse response) {
        ObjectMapper objectMapper = new ObjectMapper();
        String jsonString         = "";
        Map<String, Object> map = new HashMap<String, Object>();
        boolean success         = false;
        StringBuffer error         = new StringBuffer();
        
        try{
            // 必须参数:type key            
            String type = request.getParameter("type");
            String key     = request.getParameter("key");

            if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(key) && key.trim().length() >= 3){
                // 根据type到OpenApi/Search分类下获取对应配置
                SearchOpenApi apiBean = this.getSearchService().getApiBeanByType(type.trim());
                
                // 获取检索结果
                List<SearchBean> dataList = this.getSearchService().findSearchBeansByKeyAndApi(key.trim(), apiBean);
                
                if (null != dataList && dataList.size() > 0) {
                    //生成指定反馈json
                    success = true;
                    map.putAll(this.getSearchBeanListJson(dataList));                    
                } else {
                    success = false;
                    error.append("没有符合条件的记录!");
                }
            } else {
                success = false;
                error.append("参数错误!");
            }            
        }catch(Exception e){
            LogUtility.logError("find_api error", e);
            success = false;
            error.append(e.toString());
        }

        map.put("success", success);
        if (!success && error.length() > 0)
            map.put("error", error.toString());
        
        try {
            jsonString = objectMapper.writeValueAsString(map);
        } catch (JsonProcessingException e) {
            LogUtility.logError("find_api JsonProcessingException", e);
        }
        outPut(request,response, jsonString);
    }
}



你可能感兴趣的:(Jackson 2.0用法)