`
bugyun
  • 浏览: 556367 次
社区版块
存档分类
最新评论

Jackson 框架 json 到 复杂 list 的转换

    博客分类:
  • json
 
阅读更多

详情代码:

 

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>jacksonPrograme</groupId>
	<artifactId>jacksonPrograme</artifactId>
	<version>0.0.1-SNAPSHOT</version>

	<dependencies>
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>1.9.13</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
	</dependencies>

	<packaging>jar</packaging>
</project>

 

JsonUtil.json

package com.bugyun.test;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializerProvider;
import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
import org.codehaus.jackson.type.JavaType;

public class JsonUtil {
	
	private final static Logger log = Logger.getLogger(JsonUtil.class);
	private static final ObjectMapper mapper = new ObjectMapper();

	static {
		mapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
			@Override
			public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
				jgen.writeString("");
			}
		});

		mapper.configure(org.codehaus.jackson.map.DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
		mapper.setSerializationInclusion(Inclusion.NON_NULL);
		mapper.setSerializationInclusion(Inclusion.NON_EMPTY);
		mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
	}


	/**
	 * @description: json字符串转换成java对象
	 * @param json
	 * @param clzss
	 * @return T    
	 * @throws
	 * @author beyond
	 * @data:2016年2月26日上午11:00:03
	 */
	public static <T> T jsonToObject(String json, Class<T> clzss) {
		T obj = null;
		try {
			obj = mapper.readValue(json, clzss);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return obj;
	}

	
	/**
	 * @description: 获取泛型的Collection Type
	 * @param collectionClass	泛型的Collection
	 * @param elementClasses	元素类
	 * @return JavaType    
	 * @throws
	 * @author beyond
	 * @data:2016年2月26日上午11:00:30
	 */
	public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
		ObjectMapper mapper = new ObjectMapper();
		return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
	}
	
	
	
	public static void main(String[] args) {
		String json = "[{\"address\": \"address2\",\"name\":\"haha2\",\"id\":2,\"email\":\"email2\"},"
				+ "{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}]";
		try {
			ObjectMapper mapper = new ObjectMapper(); 
			JavaType javaType = JsonUtil.getCollectionType(ArrayList.class, Map.class); 
			List<Map<String,Object>> list =  (List<Map<String,Object>>)mapper.readValue(json, javaType);
			for(Map<String,Object> map : list){
				System.out.println(map);
			}
			
		} catch (JsonParseException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	

}

 

分享到:
评论

相关推荐

    Jackson 框架JSON、XML、List、Map直接相互转换

    NULL 博文链接:https://bugyun.iteye.com/blog/2278997

    jackson框架解析json

    总结来说,Jackson框架为处理各种JSON数据提供了强大而灵活的工具,无论是简单的Bean,还是复杂的数据结构如`List&lt;Bean&gt;`、`Map, Bean&gt;`或`List, Bean&gt;&gt;`,都能轻松应对。通过深入理解并熟练运用Jackson,开发者可以...

    json转为list 涉及 java springboot

    在 Java 中,我们可以使用各种库和框架来将 JSON 转换为 List。其中,常用的库包括 Jackson、Gson 和 Fastjson 等。下面,我们将使用 Jackson 库来将 JSON 转换为 List。 首先,我们需要添加 Jackson 库的依赖项到...

    ResultSet转化为json,json转化为List

    4. 将List转换为JSON字符串: 使用Jackson的ObjectMapper进行转换: ```java ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(userList); ``` 接下来,我们看看...

    SSM框架json使用jackson

    1. **`com.fasterxml.jackson.databind.ObjectMapper`**:这是Jackson的核心类,负责对象到JSON以及JSON到对象的转换。通过`ObjectMapper`,我们可以轻松地将Java对象序列化为JSON字符串,或者将JSON字符串反序列...

    spring使用jackson实现json

    在Spring框架中集成Jackson,可以实现高效且灵活的JSON数据交互。 一、Jackson简介 Jackson是Java中的一个开源库,由 FasterXML 维护,主要用于处理JSON数据。它提供了多种模块,如`core`、`mapper`、`annotations`...

    struts2框架json传递后台数据到echarts

    在"struts2框架json传递后台数据到echarts"的场景中,主要涉及以下几个关键技术点: 1. **Struts2 Action与Result**:首先,你需要定义一个Struts2 Action,这是处理用户请求的核心组件。Action类通常包含一个或多...

    《JSON-lib框架,转换JSON、XML不再困难》学习笔记

    5. JSON转换为Java对象:相反,`JSONObject.toBean()`或`JSONArray.toList()`方法可以将JSON数据转换回Java对象。这对于从服务器接收JSON响应并将其解析为Java对象非常有用。 6. XML与JSON的转换:JSON-lib还包含...

    SpringMVC中后台转换json格式

    1. `jackson-databind-2.7.0.jar`: 这是Jackson的主要模块,提供了对象映射功能,使得Java对象可以被转换为JSON格式,反之亦然。 2. `jackson-core-2.7.0.jar`: Jackson的核心模块,包含了基本的JSON解析和生成功能...

    使用json-lib将java对象转换成json字符串

    - `ezmorph-1.0.6.jar`:提供对象转型工具,帮助进行非标准类型到标准类型的转换,对于JSON的复杂数据类型转换很有用。 4. **转换过程**: - 对于一个Java对象,例如一个User类的实例,首先需要确保该类的属性都...

    json解析利器-jackson

    - **处理复杂类型**:Jackson支持Java集合(List、Set、Map)以及自定义的复杂类型,甚至包括泛型。 - **注解控制序列化和反序列化**:通过`@JsonProperty`、`@JsonIgnore`、`@JsonInclude`、`@JsonFormat`等注解,...

    Java反射函数机制实现List转换Json

    将List转换为JSON的过程通常涉及到两个主要步骤:创建JSON对象和将List对象序列化为JSON字符串。 在给定的`ListDtoToJson.java`文件中,我们可能会看到一个示例,展示了如何通过反射机制来实现这一转换。通常,我们...

    json list转json 所必需jar包

    "json所需最小jar包"可能指的是为了实现List到JSON转换而需要的最小依赖集合,这可能仅包含一个库(如org.json或Jackson的轻量级版本)。 对于标签“源码”,博客可能还包含了自定义处理JSON转换的代码示例,帮助...

    最新的高性能 JSON 处理jackson-2.9.2.jar下载

    例如,你可以使用`ObjectMapper`类进行对象到JSON和JSON到对象的映射,支持各种复杂的对象结构,包括嵌套对象、集合和自定义类型。 2. **jackson-core-2.9.2.jar**:这是Jackson库的基础模块,提供了基本的JSON读写...

    java转换xml、list、map和json.pdf

    4. **JSON到Map/List转换**: - `json-lib`库提供了将JSON字符串解析为Java对象的功能。`JSONSerializer.toBean()`方法可以将JSON字符串转换为Map或List对象。例如,`JSONSerializer.toJSON(jsonStr)`会返回一个...

    jackson-datatype-json-org-2.7.3.zip

    Jackson-datatype-json-org-2.7.3.zip是一个针对Jackson框架的扩展,特别是针对org类型的JSON数据类型支持。此版本为2.7.3,说明它在发布时是最新的稳定版本之一。 Jackson的可扩展性体现在其支持多种数据类型,...

    ssh将list自定义转化为json

    本文将主要以Fastjson为例,详细介绍如何将一个自定义类型的List转换为JSON字符串。 首先,我们需要引入Fastjson的依赖。如果你的项目是Maven工程,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    java使用json-lib的依赖类库

    `json-lib`是一个Java语言实现的JSON处理器,它提供了多种Java集合和JSON之间的转换方式,包括List、Map、Array等。 本主题主要关注`json-lib`在Java中的应用及其依赖的类库。`json-lib`并不是一个独立的库,它需要...

Global site tag (gtag.js) - Google Analytics