XStream在类与JSON对象之间转换

本文提供了一个JavaBean类到JSON对象的转换示例,并演示了如何从JSON字符串反序列化回Java对象,使用XStream库完成序列化与反序列化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需要相关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=北京]





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值