Jackson 2.0用法

jopen 8年前

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);      }  }



来自: http://my.oschina.net/yygh/blog/552835