`
conkeyn
  • 浏览: 1526901 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

JsonObjectMapper

    博客分类:
  • Java
阅读更多
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

/**
 * json与java对象之间转化器
 * 
 * @version 1.0.0
 * @since 2014年10月21日 下午3:11:39
 */
public final class JsonObjectMapper extends ObjectMapper
{
	/** */
	private static final long serialVersionUID = 4563671462132723274L;

	public JsonObjectMapper()
	{
		super();
		//从JSON到java object
		//没有匹配的属性名称时不作失败处理
		this.configure(MapperFeature.AUTO_DETECT_FIELDS, true);

		//反序列化
		//禁止遇到空原始类型时抛出异常,用默认值代替。
		this.configure(DeserializationFeature.FAIL_ON_NULL_FOR_PRIMITIVES, false);
		this.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);
		//禁止遇到未知(新)属性时报错,支持兼容扩展
		this.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
		this.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false);
		this.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
		this.configure(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS, true);
		this.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true);
		this.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);
		this.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);

		//序列化
		//禁止序列化空值
		this.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false);
		this.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
		this.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
		this.configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, true);
		this.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, true);
		this.configure(SerializationFeature.FLUSH_AFTER_WRITE_VALUE, true);
		//不包含空值属性
		this.setSerializationInclusion(Include.NON_EMPTY);
	}	

}

 

/**
 * 测试类
 * @version 1.0.0
 * @since 2015年2月5日 上午10:32:38
 */
public class User implements Serializable
{

	private String id;
	private String name;
	
	private int age;

	public String getId()
	{
		return id;
	}

	public void setId(String id)
	{
		this.id = id;
	}

	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public int getAge()
	{
		return age;
	}

	public void setAge(int age)
	{
		this.age = age;
	}
}

 

@Test
	public void testJsonObjectMapperOutput() throws Exception
	{
		User user = new User();
		user.setAge(11);
		user.setId(UuidUtil.getUUID());
		JsonObjectMapper mapper = new JsonObjectMapper();
		String v = mapper.writeValueAsString(user);
		int idx = v.indexOf("\"name\":");
		Assert.assertEquals(idx, -1);
		System.out.println(v);
	}

 

#redis的服务器地址
redis.host=127.0.0.1
#redis的服务端口 
redis.port=6379
#密码
#redis.pass=1234xxxxx
#链接数据库
redis.default.db=0
#客户端超时时间单位是毫秒 
redis.timeout=100000
#最大连接数 
redis.pool.maxActive=300
#最大空闲数 
redis.pool.maxIdle=100
#最大建立连接等待时间  
redis.pool.maxWait=1000
#指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
redis.pool.testOnBorrow=true
# 当调用return Object方法时,是否进行有效性检查
redis.pool.testOnReturn=true

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:websocket="http://www.springframework.org/schema/websocket"
	xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:cache="http://www.springframework.org/schema/cache"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
    http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.1.xsd
    http://www.springframework.org/schema/cache
    http://www.springframework.org/schema/cache/spring-cache-4.1.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
    http://www.springframework.org/schema/websocket
    http://www.springframework.org/schema/websocket/spring-websocket-4.1.xsd
    http://www.springframework.org/schema/data/jpa
    http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd">

	<!-- <bean id="propertyConfigurerRedis"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="order" value="1" />
		<property name="ignoreUnresolvablePlaceholders" value="true" />
		<property name="locations">
			<list>
				<value>classpath:config/redis-manager-config.properties</value>
			</list>
		</property>
	</bean> -->
	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property name="maxTotal" value="${redis.pool.maxActive}" />
		<property name="maxIdle" value="${redis.pool.maxIdle}" />
		<property name="maxWaitMillis" value="${redis.pool.maxWait}" />
		<property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
		<property name="testOnReturn" value="${redis.pool.testOnReturn}" />

	</bean>
	<bean id="redisConnectionFactory"
		class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<property name="usePool" value="true" />
		<property name="hostName" value="${redis.host}" />
		<property name="port" value="${redis.port}" />
		<!--property name="password" value="${redis.pass}" / -->
		<property name="timeout" value="${redis.timeout}" />
		<property name="database" value="${redis.default.db}" />
		<constructor-arg index="0" ref="jedisPoolConfig" />
	</bean>
	
	
	<bean id="objectMapper" class="com.xx.xxx.core.utils.JsonObjectMapper" />

</beans>

 

<!-- jredis -->
<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>2.6.2</version>
</dependency>
<dependency>
	<groupId>org.springframework.data</groupId>
	<artifactId>spring-data-redis</artifactId>
	<version>1.4.2.RELEASE</version>
</dependency>

 

分享到:
评论

相关推荐

    redis.zip案例

    ObjectMapper mapper = new ObjectMapper(); try { province_json = mapper.writeValueAsString(ps); } catch (JsonProcessingException e) { e.printStackTrace(); } //2.3 将json数据存入redis jedis.set...

    json数据解析ObjectMapper类需要使用的jar包

    json数据解析ObjectMapper类需要使用的jar包 org.codehaus.jackson.map.ObjectMapper jackson-mapper-asl-1.9.13.jar

    hello-jackson-objectmapper:使用Jackson ObjectMapper将JSON转换为Java对象的教程

    在Java开发中,处理JSON数据是一项常见的任务,而Jackson库是Java中广泛使用的JSON解析库之一,特别是它的ObjectMapper组件,能方便地实现JSON与Java对象之间的相互转换。本教程将深入探讨如何使用Jackson ...

    JSON必要jar包

    1. Jackson:Jackson是目前最流行的Java JSON库之一,它提供了一套高效的API,包括`ObjectMapper`用于对象与JSON之间的转换,以及`JsonParser`和`JsonGenerator`进行流式处理。 2. Gson:Google的Gson库可以轻松地...

    json servlet

    JSON(JavaScript Object Notation)和Servlet是Web开发中两种重要的技术。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Servlet是Java平台上的一个标准,用于扩展服务器的功能,...

    Json所需jar包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。它基于JavaScript的一个子集,但设计的目标是简洁性和易读性,使得数据的解析和生成都相对简单。在Java中,...

    json格式转换jar包

    Jackson库提供了ObjectMapper类来实现JSON与Java对象间的转换: ```java import com.fasterxml.jackson.databind.ObjectMapper; // 转换Java对象到JSON ObjectMapper mapper = new ObjectMapper(); String ...

    json-servlet-ajax

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言(包括C、C++、C#、Java、JavaScript等)的习惯,这使得它对程序员来说非常友好。...

    java json 相关 jar 包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间的数据传输。在Java开发中,处理JSON通常需要引入特定的库,这些库提供了将JSON字符串解析成Java对象,以及将Java对象...

    解析json格式所需要的全部jar

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。它以文本形式存储和传输数据,易于人阅读和编写,同时也易于机器解析和生成。JSON格式基于JavaScript的一个...

    Json解析事例

    在这里,我们使用了`ObjectMapper`的`readValue`方法来解析JSON字符串,并通过设置`dateFormat`来处理特殊日期格式。 在处理实际项目时,我们还需要考虑错误处理,比如JSON解析失败、日期格式不匹配等情况。此外,...

    jackson-2.5.0.jar整合

    例如,你可以使用`ObjectMapper`将Java对象直接转换为JSON字符串,或者反序列化JSON字符串为Java对象,如下所示: ```java // 序列化对象为JSON ObjectMapper mapper = new ObjectMapper(); String jsonString = ...

    java 创建系统菜单 Dtree.js

    ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(menuObject); ``` 2. **发送数据**:使用Java的HTTP服务库(如Spring MVC或Jersey)将JSON数据发送到前端。这通常通过...

    HttpTools2.4下载

    ObjectMapper mapper = new ObjectMapper(); MyResponse myResponse = mapper.readValue(responseBody, MyResponse.class); // 处理myResponse对象 } ``` 标签中的"java"意味着HttpTools2.4完全兼容Java语言,...

    java代码调用接口

    在这个例子中,我们需要创建一个对应的Java类`JDPriceResponse`来表示返回的JSON数据结构,并使用`ObjectMapper`的`readValue`方法将其转换为Java对象。 对于需要JSONP(JSON with Padding)调用的接口,比如物流...

    调用天气预报接口 java版

    响应通常会是JSON格式,我们需要使用JSON解析库(如Jackson、Gson或org.json)来解析这个数据。 假设我们选择了Jackson作为JSON解析库,可以这样解析获取的天气信息: ```java import ...

    一个Alamofire扩展使用ObjectMapper迅速将JSON数据转换成对象.zip

    另一方面,ObjectMapper则是一个方便的序列化和反序列化框架,可以将JSON数据轻松地映射到Swift对象上。本篇文章将深入探讨如何通过一个Alamofire的扩展来结合这两个库,以高效地将JSON数据转换为Swift对象。 首先...

    实例解析Json反序列化之ObjectMapper(自定义实现反序列化方法)

    在讨论Json反序列化过程中,我们通常会采用ObjectMapper类这一常用的工具。ObjectMapper是Jackson库中的一个核心类,它提供了丰富的API来处理JSON数据。在服务器端开发中,我们常常需要处理来自第三方接口的JSON数据...

    java中用ObjectMapper类实现Json与bean的转换示例

    主要给大家介绍了关于在java中用ObjectMapper类实现Json与bean转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。

    对象转换json,json转换成对象

    ObjectMapper mapper = new ObjectMapper(); return (T) mapper.readValue(str,cla); 2. 类对象转换成json字符串 ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(object);

Global site tag (gtag.js) - Google Analytics