android object convert to json,Jackson convert object to json and json to object

Jackson convert object to JSON示例, convert json to object convert object to JSON convert json to object示例。 学习使用jackson objectmapper从json字符串填充Java对象,并从java对象写入json字符串。

Jackson用于将Java对象转换为json , 并将json转换为java对象 。 在这个快速的jackson tutorial ,我提供了以编程方式将Java对象与json相互转换的示例。

在进入代码示例之前,让我们定义一个简单的pojo类,我们将在此示例中使用该类进行转换。public class Employee

{

private Integer id;

private String firstName;

private String lastName;

public Employee(){

}

public Employee(Integer id, String firstName, String lastName, Date birthDate){

this.id = id;

this.firstName = firstName;

this.lastName = lastName;

}

//Getters and setters

@Override

public String toString()

{

return "Employee [id=" + id + ", firstName=" + firstName + ", " +

"lastName=" + lastName + "]";

}

}

1. Jackson dependency

您可以通过两种方式添加Jackson依赖项,具体取决于您的项目类型。

1.1. Maven based project

在pom.xml文件中添加以下依赖项。

com.fasterxml.jackson.core

jackson-core

2.9.6

1.2. For ANT or other project types

2. Jackson ObjectMapper

ObjectMapper是用于数据绑定的主要API。 它带有几种读取器/写入器方法,以执行从Java到JSON的转换。 它将使用JsonParser和JsonGenerator实例来实现JSON的实际读取/写入。

2.1. Syntax to convert json to object

使用以下示例语法读取JSON并填充Java对象。ObjectMapper mapper = new ObjectMapper();

Object value = mapper.readValue(jsonSource , javaObject);jsonSource –将获取json字符串的输入源。

javaObject需要填充的目标Java对象。

2.2. Syntax to convert object to json

使用以下示例语法将Java对象写入json字符串。ObjectMapper mapper = new ObjectMapper();

Object value = mapper.writeValue(jsonTarget, javaObject);jsonTarget –将写入json字符串的输出目标。

javaObject需要转换为json的源Java对象。

3. Jackson convert object to JSON

要转换雇员对象并将其写入某个文件,可以使用以下代码。package test.jackson;

import java.io.File;

import java.io.IOException;

import java.util.Date;

import org.codehaus.jackson.JsonGenerationException;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

public class JavaToJSONExample

{

public static void main(String[] args)

{

@SuppressWarnings("deprecation")

Employee employee = new Employee(1, "Lokesh", "Gupta", new Date(1981,8,18));

ObjectMapper mapper = new ObjectMapper();

try

{

mapper.writeValue(new File("c://temp/employee.json"), employee);

} catch (JsonGenerationException e)

{

e.printStackTrace();

} catch (JsonMappingException e)

{

e.printStackTrace();

} catch (IOException e)

{

e.printStackTrace();

}

}

}

Program Output.{"id":1,"firstName":"Lokesh","lastName":"Gupta"}

4. Jackson pretty print JSON output

如果看上面的输出,那么写在文本文件中的输出是非常原始的并且没有格式化。 您可以使用编写格式化的JSON内容 defaultPrettyPrintingWriter() writerWithDefaultPrettyPrinter实例,如下所示:package test.jackson;

import java.io.File;

import java.io.IOException;

import java.util.Date;

import org.codehaus.jackson.JsonGenerationException;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

public class JavaToPrettyJSONExample

{

public static void main(String[] args)

{

@SuppressWarnings("deprecation")

Employee employee = new Employee(1, "Lokesh", "Gupta", new Date(1981,8,18));

ObjectMapper mapper = new ObjectMapper();

try

{

mapper.defaultPrettyPrintingWriter().writeValue(new File("c://temp/employee.json"), employee);

} catch (JsonGenerationException e)

{

e.printStackTrace();

} catch (JsonMappingException e)

{

e.printStackTrace();

} catch (IOException e)

{

e.printStackTrace();

}

}

}

Program Output.{

"id" : 1,

"firstName" : "Lokesh",

"lastName" : "Gupta"

}

5. Jackson convert JSON to Java object

要将json字符串转换为java对象(例如Employee对象),请使用以下代码:package test.jackson;

import java.io.File;

import java.io.IOException;

import org.codehaus.jackson.JsonGenerationException;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

public class JSONToJavaExample

{

public static void main(String[] args)

{

Employee employee = null;

ObjectMapper mapper = new ObjectMapper();

try

{

employee = mapper.readValue(new File("c://temp/employee.json"), Employee.class);

} catch (JsonGenerationException e)

{

e.printStackTrace();

} catch (JsonMappingException e)

{

e.printStackTrace();

} catch (IOException e)

{

e.printStackTrace();

}

System.out.println(employee);

}

}

Program Output.Employee [id=1, firstName=Lokesh, lastName=Gupta]

Make sure you have defined a default constructor in your POJO class (e.g. Employee.java in our case). Jackson uses default constructor to create the instances of java class using reflection. If default constructor is not provided, then you will get JsonMappingException in runtime.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值