123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- /*
- * Copyright Notice:
- * Copyright 1998-2008, Huawei Technologies Co., Ltd. ALL Rights Reserved.
- *
- * Warning: This computer software sourcecode is protected by copyright law
- * and international treaties. Unauthorized reproduction or distribution
- * of this sourcecode, or any portion of it, may result in severe civil and
- * criminal penalties, and will be prosecuted to the maximum extent
- * possible under the law.
- */
- package com.xzl.web.utils;
- import com.fasterxml.jackson.databind.DeserializationFeature;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.databind.SerializationFeature;
- import com.fasterxml.jackson.databind.node.ObjectNode;
- import java.io.IOException;
- public class JsonUtil {
- private static ObjectMapper objectMapper;
- static {
- objectMapper = new ObjectMapper();
- // 设置FAIL_ON_EMPTY_BEANS属性,当序列化空对象不要抛异常
- objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
- // 设置FAIL_ON_UNKNOWN_PROPERTIES属性,当JSON字符串中存在Java对象没有的属性,忽略
- objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- }
- /**
- * Convert Object to JsonString
- *
- * @param jsonObj
- * @return
- */
- public static String jsonObj2Sting(Object jsonObj) {
- String jsonString = null;
- try {
- jsonString = objectMapper.writeValueAsString(jsonObj);
- } catch (IOException e) {
- System.out.printf("pasre json Object[{}] to string failed.", jsonString);
- }
- return jsonString;
- }
- /**
- * Convert JsonString to Simple Object
- *
- * @param jsonString
- * @param cls
- * @return
- */
- public static <T> T jsonString2SimpleObj(String jsonString, Class<T> cls) {
- T jsonObj = null;
- try {
- jsonObj = objectMapper.readValue(jsonString, cls);
- } catch (IOException e) {
- System.out.printf("pasre json Object[{}] to string failed.", jsonString);
- }
- return jsonObj;
- }
- /**
- * Method that will convert object to the ObjectNode.
- *
- * @param value the source data; if null, will return null.
- * @return the ObjectNode data after converted.
- * @throws JsonException
- */
- public static <T> ObjectNode convertObject2ObjectNode(T object) throws Exception {
- if (null == object) {
- return null;
- }
- ObjectNode objectNode = null;
- if (object instanceof String) {
- objectNode = convertJsonStringToObject((String) object, ObjectNode.class);
- } else {
- objectNode = convertValue(object, ObjectNode.class);
- }
- return objectNode;
- }
- /**
- * Method that will convert the json string to destination by the type(cls).
- *
- * @param jsonString the source json string; if null, will return null.
- * @param cls the destination data type.
- * @return
- * @throws JsonException
- */
- public static <T> T convertJsonStringToObject(String jsonString, Class<T> cls) throws Exception {
- if (StringUtil.strIsNullOrEmpty(jsonString)) {
- return null;
- }
- try {
- T object = objectMapper.readValue(jsonString, cls);
- return object;
- } catch (Exception e) {
- throw new Exception(e);
- }
- }
- /**
- * Method that will convert from given value into instance of given value type.
- *
- * @param fromValue
- * @param toValueType
- * @return
- * @throws JsonException
- */
- private static <T> T convertValue(Object fromValue, Class<T> toValueType) throws Exception {
- try {
- return objectMapper.convertValue(fromValue, toValueType);
- } catch (IllegalArgumentException e) {
- throw new Exception(e);
- }
- }
- }
|