关于Json与Java对象转化的组件除了Json-lib(http://json-lib.sourceforge.net/), 还有一个是Jackson(https://github.com/FasterXML/jackson), 使用Jackson可以很方便的处理Json和java对象之间的转换, 使用方法:
- 在工程中引入Jackson对应的Jar包.
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.3</version> </dependency>
- Json字符串转换为Java对象
User.java
package top.itart.demo; public class User { private String userName; private int age; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
JsonTest.java
参考文档:http://tutorials.jenkov.com/java-json/jackson-objectmapper.htmlpackage top.itart.demo; import java.io.IOException; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class JsonTest { public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException { String userJson = "{ \"userName\" : \"IT Art\", \"age\" : 100 }"; User user = new ObjectMapper().readValue(userJson, User.class); System.out.println("user name = "+user.getUserName() +", age = "+user.getAge()); } }