需要相关JAR包,xstream-1.3.1.jar jettison-1.0.1.jar
一个JavaBean类Student
Student
package com.yin;
public class Student {
private int id;
private String name;
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String toString() {
return "Student [id=" + id + ", name=" + name + ", address=" + address
+ "]";
}
}
类转换为JSON对象代码:
JSON转换成类对象<pre name="code" class="java">package com.yin;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver;
public class OtoJson {
private static Student stu;
private static void init(){
stu = new Student();
stu.setId(2014);
stu.setName("张三");
stu.setAddress("北京");
}
private static String OtoJ(Student stu){
XStream xstream = new XStream(new JsonHierarchicalStreamDriver());
xstream.setMode(XStream.NO_REFERENCES);
xstream.alias("student", Student.class);
return xstream.toXML(stu);
}
private static Student JtoO(String jsonStu){
XStream xstream = new XStream(new JettisonMappedXmlDriver());
xstream.alias("student", Student.class);
return (Student)xstream.fromXML(jsonStu);
}
public static void main(String[] args){
init();
System.out.println("-------Object-->Json----------");
String stuJson = OtoJ(stu);
System.out.println(stuJson);
System.out.println("-------Jso--->Object----------");
System.out.println(JtoO(stuJson).toString());
}
}
输出结果:<pre name="code" class="java">-------Object-->Json----------
{"student": {
"id": 2014,
"name": "张三",
"address": "北京"
}}
-------Jso--->Object----------
Student [id=2014, name=张三, address=北京]