package org.linlinjava.litemall.core.util;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import java.io.IOException;
import java.util.List;
import java.util.Map; public class JacksonUtil { private static final Log logger = LogFactory.getLog(JacksonUtil.class); public static String parseString(String body, String field) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node;
try {
node = mapper.readTree(body);
JsonNode leaf = node.get(field);
if (leaf != null)
return leaf.asText();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return null;
} public static List<String> parseStringList(String body, String field) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node;
try {
node = mapper.readTree(body);
JsonNode leaf = node.get(field); if (leaf != null)
return mapper.convertValue(leaf, new TypeReference<List<String>>() {
});
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return null;
} public static Integer parseInteger(String body, String field) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node;
try {
node = mapper.readTree(body);
JsonNode leaf = node.get(field);
if (leaf != null)
return leaf.asInt();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return null;
} public static List<Integer> parseIntegerList(String body, String field) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node;
try {
node = mapper.readTree(body);
JsonNode leaf = node.get(field); if (leaf != null)
return mapper.convertValue(leaf, new TypeReference<List<Integer>>() {
});
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return null;
} public static Boolean parseBoolean(String body, String field) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node;
try {
node = mapper.readTree(body);
JsonNode leaf = node.get(field);
if (leaf != null)
return leaf.asBoolean();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return null;
} public static Short parseShort(String body, String field) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node;
try {
node = mapper.readTree(body);
JsonNode leaf = node.get(field);
if (leaf != null) {
Integer value = leaf.asInt();
return value.shortValue();
}
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return null;
} public static Byte parseByte(String body, String field) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node;
try {
node = mapper.readTree(body);
JsonNode leaf = node.get(field);
if (leaf != null) {
Integer value = leaf.asInt();
return value.byteValue();
}
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return null;
} public static <T> T parseObject(String body, String field, Class<T> clazz) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node;
try {
node = mapper.readTree(body);
node = node.get(field);
return mapper.treeToValue(node, clazz);
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return null;
} public static Object toNode(String json) {
if (json == null) {
return null;
}
ObjectMapper mapper = new ObjectMapper();
try { return mapper.readTree(json);
} catch (IOException e) {
logger.error(e.getMessage(), e);
} return null;
} public static Map<String, String> toMap(String data) {
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper.readValue(data, new TypeReference<Map<String, String>>() {
});
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
return null;
} }

最新文章

  1. go异常处理
  2. Routine
  3. [原创]如何设计Lighthoused定位接收电路
  4. [学习笔记] 七步从AngularJS菜鸟到专家(7):Routing [转]
  5. net.sf.json.JSONObject 和org.json.JSONObject 的差别
  6. 图书馆管理系统—NABCD模型竞争性需求分析
  7. ubuntu安装spark on yarn
  8. 图像边缘检测——Sobel算子
  9. gridcontrol中使用右健菜单popupMenu1
  10. win7 变WIFI热点 &amp; 在线Linux 内核代码
  11. Solr系列一:Solr与Tomcat的整合
  12. 【HDOJ】2150 Pipe
  13. map,area标签
  14. box2d 计算自由落体下一帧的位置
  15. Chrome浏览器扩展开发系列之九:Chrome浏览器的chrome.alarms.* API
  16. 京东饭粒捡漏V1.14
  17. linux 安装python3 date更新
  18. Basic Mathematics You Should Mastered
  19. Django - models.py 应用
  20. python之celery使用详解一

热门文章

  1. nested exception is java.lang.IllegalArgumentException: warning no match for this type name: res [Xlint:invalidAbsoluteTypeName]
  2. MyBatis:配置解析
  3. HashMap核心功能源码浅析
  4. Windows10 与 WSL(Ubuntu)的文件互访
  5. Codeforces 1291A - Even But Not Even
  6. MySql 的操作指令(window)
  7. [前端] VUE基础 (9) (element-ui、axios、Vuex)
  8. 解决XML警告&quot;No grammar constraints (DTD or XML Schema) referenced in the document&quot;
  9. 87.QuerySet API使用详解:create方法
  10. 吴裕雄--天生自然深度学习TensorBoard可视化:projector_MNIST