提前感谢。
//1. Convert Java object to JSON format
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("c:\\user.json"), user);
//2. Convert JSON to Java object
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("c:\\user.json"), User.class);
Jackson Dependency Jackson contains 6 separate jars for different purpose, check here. In this case, you only need “jackson-mapper-asl” to handle the conversion, just declares following dependency in your pom.xml
<repositories>
<repository>
<id>codehaus</id>
<url>http://repository.codehaus.org/org/codehaus</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.8.5</version>
</dependency>
</dependencies>
For non-maven user, just get the Jackson library here.
POJO
An user object, initialized with some values. Later use Jackson to convert this object to / from JSON.
package com.mkyong.core;
import java.util.ArrayList;
import java.util.List;
public class User {
private int age = 29;
private String name = "mkyong";
private List<String> messages = new ArrayList<String>() {
{
add("msg 1");
add("msg 2");
add("msg 3");
}
};
//getter and setter methods
@Override
public String toString() {
return "User [age=" + age + ", name=" + name + ", " +
"messages=" + messages + "]";
}
}
Java Object to JSON Convert an “user” object into JSON formatted string, and save it into a file “user.json“.
package com.mkyong.core;
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 JacksonExample {
public static void main(String[] args) {
User user = new User();
ObjectMapper mapper = new ObjectMapper();
try {
// convert user object to json string, and save to a file
mapper.writeValue(new File("c:\\user.json"), user);
// display to console
System.out.println(mapper.writeValueAsString(user));
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output
{"age":29,"messages":["msg 1","msg 2","msg 3"],"name":"mkyong"}
Note Above JSON output is hard to read. You can enhance it by enable the pretty print feature.
JSON to Java Object
Read JSON string from file “user.json“, and convert it back to Java object.
package com.mkyong.core;
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 JacksonExample {
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("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=29, name=mkyong, messages=[msg 1, msg 2, msg 3]]
//****************** update The user Info**********************//
@RequestMapping(value = "/update/{id}", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody
Status updateMsBuddy(@RequestBody MsBuddyInfo msBuddyInfo){
try{
if(msBuddyService.updateMsBuddy(msBuddyInfo))
return new Status(1, "MsBuddyInfo updated Successfully",+msBuddyInfo.getId());
else
return new Status(1, "unable to updated Profile",+msBuddyInfo.getId());
}
catch(Exception e){
return new Status(0,e.toString());
}
}
来自journaldev的非常好的教程 Jackson-JSON处理
您可以使用jackson API的com.fasterxml.jackson.databind.ObjectMapper
类来读取或编写格式化为字符串的json对象。