j2ee编程实现将数据变成json格式的高效转换工具fastJson

fastjson是一个性能很好的 Java语言实现的 JSON解析器和生成器,来自阿里巴巴的工程师开发。(只需要将该jar文件引入到项目中,即可通过JSON作为使用fastJson各个方法的使用入口

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。(JSONObject即json对象)

public static final Object parse(String text); // 把JSON文本parse为json对象或者JSONArray 
public static final JSONObject parseObject(String text);//把JSON文本parse成json对象
public static final <T> T parseObject(String text, Class<T> clazz); //把JSON文本parse为JavaBean 
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
public static final <T> List<T> parseArray(String text, Class<T> clazz);//把JSON文本parse成JavaBean集合 
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 
public static final Object toJSON(Object javaObject);//将JavaBean转换为json对象或者JSONArray。

注意:

SerializeWriter:相当于StringBuffer

JSONArray:相当于List<Object>

JSONObject:相当于Map<String, Object>(JSON对象就相当于Map集合)

JSON反序列化没有真正数组,本质类型都是List<Object>

fastjson其实还有很多很高级的特性,比如支持注解、支持全类型序列化,这些都是很好的特性,功能十分强大,大家可以自行研究使用一下,至于fastjson与Jackson到底谁好,大家可以自行比较研究一番

下面是我练习时的部分小例子:

import com.alibaba.fastjson.JSON;

/**
 * 练习使用阿里巴巴的fastJson
 * @author Administrator
 */
public class FJDemo {
	public static void main(String[] args){
		String name="於之";
		String sex="男";
		String age="20";
		String clazz="网络2班";//班级
		Student stu=new Student();
		stu.setName(name);
		stu.setSex(sex);
		stu.setAge(age);
		stu.setClazz(clazz);
		//
		//javaBeanToJson(stu);
		jsonToJavaBean("{'age':'20','clazz':'网络2班','name':'於之','sex':'男'}");//key值必须要和javabean对象的成员变量一一对应
		
		//将json数据格式的字符串转为json对象,js中是通过eval()函数完成的。
		JSON json=JSON.parseObject("{'age':'20','clazz':'网络2班','name':'於之','sex':'男'}");
	}
	//JavaBean对象序列化为json格式的数据
	public static void javaBeanToJson(Object obj){
		String str="";
		str=JSON.toJSONString(obj);//参数为javabean对象   返回json格式的数据
		System.out.println(str);
	}
	//json格式数据反序列化为javabean对象
	public static void jsonToJavaBean(String json){
		Student stu=JSON.parseObject(json, Student.class);
		System.out.println("转换之后javabean的成员变量的值:");
		System.out.println(stu.getAge());
		System.out.println(stu.getClazz());
		System.out.println(stu.getName());
		System.out.println(stu.getSex());
	}
}
//javabean对象
class Student{
	private String name;
	private String sex;
	private String age;
	private String clazz;//班级
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getClazz() {
		return clazz;
	}
	public void setClazz(String clazz) {
		this.clazz = clazz;
	}
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

於之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值