1. 程式人生 > >java json 序列化與反序列化

java json 序列化與反序列化

J元件:com.fasterxml.jackson POM(區域性): [html] view plain copy <logback.version>1.0.13</logback.version>   <jackson.version>2.3.1</jackson.version>   <dependency>       <groupId>ch.qos.logback</groupId>       <artifactId>logback-classic</artifactId>       <version>${logback.version}</version>   </dependency>   <dependency>       <groupId>com.fasterxml.jackson.core</groupId>       <artifactId>jackson-databind</artifactId>       <version>${jackson.version}</version>   </dependency>   程式碼: [java] view plain copy import java.io.IOException;   import java.io.StringWriter;   import java.io.Writer;   import java.util.Map;   import org.slf4j.LoggerFactory;   import ch.qos.logback.classic.Logger;   import com.fasterxml.jackson.core.JsonGenerationException;   import com.fasterxml.jackson.core.JsonParseException;   import com.fasterxml.jackson.core.type.TypeReference;   import com.fasterxml.jackson.databind.JsonMappingException;   import com.fasterxml.jackson.databind.ObjectMapper;   import com.fasterxml.jackson.databind.type.TypeFactory;   /**   * Json序列化工具   *    * @author http://blog.csdn.net/xxd851116   * @date 2014年3月26日 下午1:21:59   */   public class JsonUtils {       private static final Logger logger = (Logger) LoggerFactory.getLogger(JsonUtils.class);       private static ObjectMapper objectMapper = new ObjectMapper();       /**       * 將物件序列化為JSON字串       *        * @param object       * @return JSON字串       */       public static String serialize(Object object) {           Writer write = new StringWriter();           try {               objectMapper.writeValue(write, object);           } catch (JsonGenerationException e) {               logger.error("JsonGenerationException when serialize object to json", e);           } catch (JsonMappingException e) {               logger.error("JsonMappingException when serialize object to json", e);           } catch (IOException e) {               logger.error("IOException when serialize object to json", e);           }           return write.toString();       }       /**       * 將JSON字串反序列化為物件       *        * @param object       * @return JSON字串       */       public static <T> T deserialize(String json, Class<T> clazz) {           Object object = null;           try {               object = objectMapper.readValue(json, TypeFactory.rawClass(clazz));           } catch (JsonParseException e) {               logger.error("JsonParseException when serialize object to json", e);           } catch (JsonMappingException e) {               logger.error("JsonMappingException when serialize object to json", e);           } catch (IOException e) {               logger.error("IOException when serialize object to json", e);           }           return (T) object;       }       /**       * 將JSON字串反序列化為物件       *        * @param object       * @return JSON字串       */       public static <T> T deserialize(String json, TypeReference<T> typeRef) {           try {               return (T) objectMapper.readValue(json, typeRef);           } catch (JsonParseException e) {               logger.error("JsonParseException when deserialize json", e);           } catch (JsonMappingException e) {               logger.error("JsonMappingException when deserialize json", e);           } catch (IOException e) {               logger.error("IOException when deserialize json", e);           }           return null;       }   }