Java JSON – Convert Java Object To / From JSON (Jackson)
Java JSON – Convert Java Object To / From JSON (Jackson)
JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。尽管JSON是Javascript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。 维基百科:http://zh.wikipedia.org/wiki/JSON
Jackson is a High-performance JSON processor Java library–Jackson是高性能解析JSON的Java lib
核心代码:
[java][/java] view plaincopy
- //1. Convert Java object to JSON format
- ObjectMapper mapper = new ObjectMapper();
- mapper.writeValue(new File(“c:\\user.json”), user);
[java][/java] view plaincopy
- //2. Convert JSON to Java object
- ObjectMapper mapper = new ObjectMapper();
- User user = mapper.readValue(new File(“c:\\user.json”), User.class);
以下为具体例子:
一. POJO User.java
[java][/java] view plaincopy
- package com.jiangge.jkstest;
- import java.util.ArrayList;
- import java.util.List;
- public class User {
- private int age = 23;
- private String name = “jiangge”;
- private String qqNum = “499065469”;
- private List<String> message = new ArrayList<String>() {
- {
- add(“msg 1”);
- add(“msg 2”);
- add(“msg 3”);
- }
- };
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public List<String> getMessage() {
- return message;
- }
- public void setMessage(List<String> message) {
- this.message = message;
- }
- public String getqqNum() {
- return qqNum;
- }
- public void setqqNum(String qq) {
- this.qqNum = qq;
- }
- @Override
- public String toString() {
- return “User [age=” + age + “, name=” + name + “, message=” + message
- + “]”;
- }
- }
二. Java Object to JSON
Convert an “user” object into JSON formatted string, and save it into a file “user.json“.
[java][/java] view plaincopy
- package com.jiangge.jkstest;
- import java.io.File;
- import java.io.IOException;
- import com.fasterxml.jackson.core.JsonGenerationException;
- import com.fasterxml.jackson.databind.JsonMappingException;
- import com.fasterxml.jackson.databind.ObjectMapper;
- //To make this work with the latest (1.9.3) Jackson,
- //there must be getters and setters for the members in the User class.
- public class JacksonExampleToJson {
- public static void main(String[] args) {
- User user = new User();
- ObjectMapper objMapper = new ObjectMapper();
- try {
- // convert user object to json string, and save to a file
- objMapper.writeValue(new File(“c:\\user.json”), user);
- // display to console
- System.out.println(objMapper.writeValueAsString(user));
- } catch (JsonGenerationException e) {
- e.printStackTrace();
- } catch (JsonMappingException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
控制台输出:
{“age”:23,”name”:”jiangge”,”qqNum”:”499065469″,”message”:[“msg 1″,”msg 2″,”msg 3”]}
三. JSON to Java Object
Read JSON string from file “user.json“, and convert it back to Java object.
[java][/java] view plaincopy
- package com.jiangge.jkstest;
- import java.io.File;
- import java.io.IOException;
- import com.fasterxml.jackson.core.JsonGenerationException;
- import com.fasterxml.jackson.databind.JsonMappingException;
- import com.fasterxml.jackson.databind.ObjectMapper;
- public class JacksonExampleRead {
- public static void main(String[] args) {
- ObjectMapper objMapper = new ObjectMapper();
- try {
- // read from file, convert it to user class
- User user = objMapper.readValue(new File(“c:\\user.json”), User.class);
- // display to console
- System.out.println(user);
- } catch (JsonGenerationException e) {
- e.printStackTrace();
- } catch (JsonMappingException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
控制台输出:
User [age=23, name=jiangge, message=[msg 1, msg 2, msg 3]]