import java.io.IOException; import java.text.SimpleDateFormat; import java.util.TimeZone; import org.apache.log4j.Logger; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; public class JsonUtils { private static Logger logger = Logger.getLogger(JsonUtils.class); private static final ObjectMapper objectMapper; static { objectMapper = new ObjectMapper(); //去掉默认的时间戳格式 objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); //设置为中国上海时区 objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8")); objectMapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false); //空值不序列化 objectMapper.setSerializationInclusion(Include.NON_NULL); //反序列化时,属性不存在的兼容处理 objectMapper.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); //序列化时,日期的统一格式 objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); //单引号处理 objectMapper.configure(com.fasterxml.jackson.core.JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); } public static <T> T toObject(String json, Class<T> clazz) { try { return objectMapper.readValue(json, clazz); } catch (JsonParseException e) { logger.error(e.getMessage(), e); } catch (JsonMappingException e) { logger.error(e.getMessage(), e); } catch (IOException e) { logger.error(e.getMessage(), e); } return null; } public static <T> String toJson(T entity) { try { return objectMapper.writeValueAsString(entity); } catch (JsonGenerationException e) { logger.error(e.getMessage(), e); } catch (JsonMappingException e) { logger.error(e.getMessage(), e); } catch (IOException e) { logger.error(e.getMessage(), e); } return null; } public static <T> T toCollection(String json, TypeReference<T> typeReference) { try { return objectMapper.readValue(json, typeReference); } catch (JsonParseException e) { logger.error(e.getMessage(), e); } catch (JsonMappingException e) { logger.error(e.getMessage(), e); } catch (IOException e) { logger.error(e.getMessage(), e); } return null; } }
相关推荐
"android工具类"这个主题涵盖了从UI操作到网络请求,再到数据处理等多个方面的通用功能。下面我们将深入探讨一些常见的Android工具类及其功能。 1. **UI工具类**: - `ViewUtils`:此类通常包含与视图操作相关的...
接下来,我们将创建一个`WebServiceUtil`类,这个类将封装Web服务调用的逻辑。首先,定义一个方法用于发送GET请求: ```java import org.apache.http.HttpEntity; import org.apache....
2. **网络请求库**:通用工具类可能包含一个网络请求模块,如OkHttp或Retrofit,封装了HTTP请求,简化了API接口调用。这些工具通常支持异步处理、错误处理、缓存策略等。 3. **数据解析和序列化**:XML、JSON等数据...
这里我们以“Android实现阿里OCR通用类文字识别Demo”为例,详细讲解这个过程。 首先,我们需要理解OCR(Optical Character Recognition,光学字符识别)技术,它是将图像中的文字转换为机器编码文本的过程。阿里云...
2. **Hadoop Common**: 提供Hadoop的通用工具和库,包括网络通信、文件系统接口等。文件名可能为`hadoop-common-2.7.1.jar`。 3. **Hadoop HDFS**: Hadoop分布式文件系统的实现。文件名可能为`hadoop-hdfs-2.7.1....
7. **Commons**: Apache Commons库,如`commons-lang3.jar`,提供各种通用的工具类,增强Java的内置功能。 8. **Jackson或Gson**: JSON序列化和反序列化库,如`jackson-databind.jar`或`gson-2.x.x.jar`,用于JSON...
4. **Apache Commons**: Apache Commons项目提供了许多实用工具类,如Commons Lang、Commons IO等,这些jar包包含了一些通用的、方便的函数,可以简化开发工作。 5. **Logging框架**: 如log4j、slf4j等,它们提供了...
9. **其他依赖**:如Hibernate或MyBatis(如果使用ORM框架)、junit.jar(单元测试)、commons-lang3.jar(通用语言工具包)等,根据具体项目需求可能需要额外的库。 了解这些jar包的作用后,开发者可以根据实际...
10. **工具类集合**:包括时间处理、字符串操作、文件操作等常用工具类,提高开发效率。 以上是对"BasicApiBasicApi"这个基础库的推测性解析,实际的功能可能会根据项目需求有所不同。使用这样的基础库,开发者可以...
在Java编程语言中,枚举(Enum)是一种特殊的类,用于定义一组预定义的常量。枚举类型在很多场景下被广泛使用,比如表示状态、权限、颜色等固定值集合。然而,当涉及到与数据库交互或者需要进行JSON序列化和反序列化...
<version>2.x.x</version> <!-- 请使用最新版本 --> ``` 2. **定义Java类**:创建一个Java类,该类代表你希望从JSON中解析出的数据结构。使用Jackson注解如`@JsonProperty`来指定JSON字段对应的Java属性。...
1. guava-18.0.jar:这是Google的Guava库,提供了一组通用的Java集合框架、多线程支持、I/O工具等,对于Curator的某些功能实现至关重要,比如缓存管理和延迟任务。 2. mockito-all-1.9.0.jar:Mockito是一个单元...
图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...
8. **Testing and Utilities**:还有一些辅助库,如JUnit用于单元测试,Apache Commons或Guava等提供了通用的工具类,用于提高开发效率。 9. **XML解析和XPath**:jbpm使用XML来定义流程模型,可能包含如JAXB或DOM4...
首先,我们来看`HttpClientUtil.java`,这是一个常见的工具类,通常包含一系列静态方法,用于简化HttpClient的使用。例如,可能有方法用于创建HTTP连接管理器、发送GET请求、POST请求,以及处理响应。这些方法可能会...
2. `library`模块(如果存在):可能包含自定义控件或通用工具类,为`app`模块提供服务。 3. `data`模块:可能包含数据访问对象(DAO)和数据库相关代码,用于存储和管理新闻数据。 4. `model`模块:封装了网络请求...
本文将深入探讨如何解决"android layout XML解析错误"的问题,以及提供一些通用的XML解析方法。 首先,让我们来看看标题和描述中提到的具体错误:"org.xmlpull.v1.XmlPullParserException: PI must not start with ...