`

Jackson Basic

    博客分类:
  • JSON
 
阅读更多

1.Maven Dependency

<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>org.fool.jackson</groupId>
	<artifactId>Jackson</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>Jackson</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.1.3</version>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.1</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

 

2.Project Directory


 

3.User.java

package org.fool.jackson;

import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

public class User
{
	private String name;
	private int age;
	private List<String> msgs;

	public User()
	{
	}

	public User(String name, int age, List<String> msgs)
	{
		this.name = name;
		this.age = age;
		this.msgs = msgs;
	}

	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;
	}

	public List<String> getMsgs()
	{
		return msgs;
	}

	public void setMsgs(List<String> msgs)
	{
		this.msgs = msgs;
	}

	@Override
	public String toString()
	{
		return ToStringBuilder.reflectionToString(this,
				ToStringStyle.SHORT_PREFIX_STYLE);
	}

}

 

4.Java Object To Json

Convert an “user” object into JSON formatted string, and save it into a file “user.json“.

package org.fool.jackson;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JavaObjectToJson
{
	public static void main(String[] args)
	{
		List<String> msgs = new ArrayList<>();
		msgs.add("msg1");
		msgs.add("msg2");
		msgs.add("msg3");

		User user = new User("Hero", 30, msgs);

		ObjectMapper mapper = new ObjectMapper();

		try
		{
			// convert user object to json string, and save to a file
			mapper.writeValue(new File("user.json"), user);

			// display to console
			System.out.println(mapper.writeValueAsString(user));

			// this is Jackson 1.x API only
			// System.out.println(mapper.defaultPrettyPrintingWriter()
			// 		.writeValueAsString(user));
			
			// for Jackson 2.x use the line below instead of the one
			System.out.println(mapper.writer().withDefaultPrettyPrinter()
					.writeValueAsString(user));
		}
		catch (JsonGenerationException e)
		{
			e.printStackTrace();
		}
		catch (JsonMappingException e)
		{
			e.printStackTrace();
		}
		catch (JsonProcessingException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}

结果 — JavaObjectToJson


从图中可以看出,下面的JSON格式输出更加pretty,但是Jackson1.x和Jackson2.x的Pretty Print的API是不一样的

Jackson 1.x的Pretty Print 采用如下格式

System.out.println(mapper.defaultPrettyPrintingWriter().writeValueAsString(user));

Jackson 2.x的Pretty Print 采用如下格式 

System.out.println(mapper.writer().withDefaultPrettyPrinter().writeValueAsString(user));

我这里由于使用的是Jackson 2.x的API,所以采用下面一种方法。 

 

5.Json To Java Object

Read JSON string from file “user.json“, and convert it back to Java object.

package org.fool.jackson;

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonToJavaObject
{
	public static void main(String[] args)
	{
		ObjectMapper mapper = new ObjectMapper();
		
		try
		{
			// read from file, convert it to user class
			User user = mapper.readValue(new File("user.json"), User.class);
			
			// display to console
			System.out.println(user);
		}
		catch (JsonParseException e)
		{
			e.printStackTrace();
		}
		catch (JsonMappingException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}
}

结果 — JsonToJavaObject


  

 

  • 大小: 9.5 KB
  • 大小: 15.5 KB
  • 大小: 11.8 KB
分享到:
评论

相关推荐

    BasicApiBasicApi

    2. **数据解析和序列化**:为了处理从网络获取的数据,基础库通常会集成Gson、Jackson或Fastjson等工具,将JSON字符串转化为Java对象,方便进一步处理。 3. **数据存储**:可能包含SQLite数据库操作接口,用于持久...

    Intel64 and IA-32 Architectures Volume 1 Basic Architecture.pdf

    Intel64和IA-32架构是英特尔公司开发的两种微处理器架构。IA-32架构,也就是常说的x86架构,是在1978年推出的32位微处理器架构,是英特尔早期的成功产品。而Intel 64架构,也称为x86-64或AMD64(因为AMD也参与开发)...

    JSON与JAVA数据的转换

    3. **JSON Primitive Values &lt;-&gt; Java Basic Types** - JSON支持的基本类型包括数字、布尔值、字符串等,这些可以直接映射到Java的基本类型或包装类,如`int`、`Integer`、`boolean`、`Boolean`、`String`等。 4. *...

    WebService中使用自定义类的五种解决方法

    这两种库都提供了丰富的注解,如`@Expose`(Gson)或`@JsonProperty`(Jackson),来控制哪些字段参与序列化和反序列化。 4. **SOAP消息封装**: 在SOAP协议中,自定义类可以通过创建一个特殊的包装类来传递。包装...

    ajax-basic.rar_Ajax_Java_

    这个"ajax basic.pdf"教程很可能是介绍以上这些概念和实践的详细指南,对于初学者来说,理解并掌握这些知识,将有助于构建基于Ajax的Web应用。通过学习和实践,你可以创建更动态、响应更快的网页,提供更好的用户...

    java调用bing search api搜索关键字.docx

    这里使用了 `GetResultsFromJons()` 函数,虽然未提供完整实现,但通常会涉及使用JSON解析库(如Jackson或Gson)将JSON字符串转化为Java对象,如JSONArray: ```java public static JSONArray GetResultsFromJons...

    AccessBasicAuthentication:在Java中访问RESTful Web服务

    杰克逊(Jackson)数据映射器jar。 ## 1。 RESTful网址 使用jersey或spring构建RESTful Web服务。 如果您不知道如何构建Web服务,请参阅我以前的 ## 2。 泽西岛核心客户罐 从maven存储库jar文件或使用以下maven...

    HttpUtils.7z

    使用Gson或Jackson解析JSON响应,提高数据处理效率;利用`OkHttp`的缓存机制,减少不必要的网络流量。 综上所述,`HttpUtils`这个示例涵盖了网络请求的基本要素,包括认证、请求方法、重试策略,以及对OkHttp的模仿...

    软件工程习题5.doc

    ```basic if (A ) { if (A ) { print A; } else { print C; } } else { if (B ) { print B; } else { print C; } } ``` 这段代码实现了同样的功能,但没有使用GOTO,逻辑更加清晰。 2. **程序段的...

    计算机软件工程师考试.pdf

    软件开发方面,提到了各种编程语言和技术,包括C++、Java、Visual Basic、Visual C++、Jackson-Warnier、CASE(计算机辅助软件工程)、DFDD(数据流设计图)、UML(统一建模语言)、HIPO(层次输入流程图)、ERD...

    jenkins常用插件包

    Jackson 2 API Java JSON Web Token (JJWT) Plugin Javadoc Plugin JavaScript GUI Lib: ACE Editor bundle plugin JavaScript GUI Lib: Handlebars bundle plugin JavaScript GUI Lib: Moment.js bundle plugin ...

    (完整word版)软件工程期末试题(含答案).doc

    15. 程序设计语言:高级语言、低级语言和中级语言是常见的程序设计语言,PASCAL、VISUAL BASIC、C++等是高级语言,而汇编语言是低级语言。 16. 软件测试方法:白盒测试方法和黑盒测试方法是两种常见的软件测试方法...

    msvbvm60.dll文件下载

    msvbvm60.dll是Microsoft Visual Basic Virtual Machine (VBVM) 的6.0版本动态链接库文件,它是许多基于Visual Basic 6.0开发的应用程序所依赖的关键组件。当你的计算机上缺少这个文件时,可能会导致某些软件无法...

    bboss elasticsearch-5.7.8.rar

    2. `jackson-databind-2.9.8.jar`:Jackson是JSON处理库,`databind`模块实现了将Java对象映射到JSON和反向映射的功能,对于Elasticsearch的数据导入和导出非常关键。 3. `bboss-util-5.5.0.jar`和`bboss-...

    软件工程师考试知识.pdf

    - Jackson:可能是指软件开发方法之一,比如Jackson Structured Programming。 - Warnier:指的是Warnier图,一种用于程序设计的流程图。 - UML:统一建模语言,是一种用于软件系统分析和设计的标准图表表示法。 ...

    使用Java进行Json数据的解析(对象数组的相互嵌套)

    在Java中,我们通常使用Jackson、Gson或org.json库来解析JSON。 首先,我们需要导入相关的库。在这个例子中,我们使用的是org.json库,所以要在项目中引入该库的依赖: ```xml &lt;groupId&gt;org.json &lt;artifactId&gt;...

    软件工程试题库全解.pdf

    PAD(程序分析图)和Jackson结构化编程也是在文件中提及的,它们是软件开发中用来分析程序逻辑的方法。 4. 软件工程中的设计技术:包括Warnier图和PDL(程序设计语言),以及DFD(数据流图)等,这些都是设计阶段...

    软件工程模拟试题及答案

    3. **Jackson 方法论:**Jackson 方法论侧重于将数据结构的概念应用于软件设计,从而提高软件的结构清晰度。 4. **OMT 方法论:**OMT(Object Modeling Technique)是一种面向对象的建模技术,用于软件分析和设计阶段...

    沈阳建筑大学软件工程设计指导书

    实验环境要求具备一定的硬件配置,如P4 2GHz CPU、512MB内存和20GB硬盘,以及相应的软件工具,如Windows XP、Visual C++、Visual Basic和Microsoft Office 2003。 实验内容包括: 1. 软件系统分析:选择题目进行...

Global site tag (gtag.js) - Google Analytics