现在的位置: 首页 > 综合 > 正文

JSON类库 Flexjson学习

2013年10月15日 ⁄ 综合 ⁄ 共 4604字 ⁄ 字号 评论关闭

官方地址(需翻墙):http://flexjson.sourceforge.net/

Flexjson 是一个将 Java 对象转成 JSON 的 类库,是一个深度转换的过程。

下面是我写的一个例子:http://download.csdn.net/detail/zzhd_xingfu/5885183

Main.java

package com.flexjson.main;

import java.util.ArrayList;
import java.util.List;

import com.flexjson.model.InterestModel;
import com.flexjson.model.TelModel;
import com.flexjson.model.UserModel;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		testJsonUtil();
	}

	public static void testJsonUtil() {
		// Json String to Java object
		String json1 = "{\"ims\":[{\"name\":\"篮球\"},{\"name\":\"足球\"}],\"tm\":{\"number\":\"15896352635\",\"type\":\"手机号\"},\"passWord\":\"123\",\"userName\":\"admin\"}";
		UserModel um1 = JsonUtil.getObjFromJsonStr(json1, UserModel.class);
		System.out.println(um1.toString());
		// ///////////////////////////////////////////////

		// Java object to JSON String 简单的Object
		UserModel um2 = new UserModel();
		um2.setUserName("admin");
		um2.setPassWord("123");
		System.out.println(JsonUtil.getJsonStrFromObj(um2));
		// ///////////////////////////////////////////////

		// Java object to JSON String 复杂的Object
		UserModel um3 = new UserModel();
		um3.setUserName("admin");
		um3.setPassWord("123");
		List<InterestModel> ims = new ArrayList<InterestModel>();
		InterestModel im1 = new InterestModel();
		im1.setName("篮球");
		InterestModel im2 = new InterestModel();
		im2.setName("足球");
		ims.add(im1);
		ims.add(im2);
		um3.setIms(ims);
		TelModel tm = new TelModel();
		tm.setNumber("15896352635");
		tm.setType("手机号");
		um3.setTm(tm);
		String json3 = JsonUtil.getJsonStrFromObj(um3, "ims", "tm");
		System.out.println(json3);
		// ///////////////////////////////////////////////

		// List to JSON String
		UserModel um4_1 = new UserModel();
		um4_1.setUserName("admin_1");
		um4_1.setPassWord("123_1");
		List<InterestModel> ims4_1 = new ArrayList<InterestModel>();
		InterestModel im4_1_1 = new InterestModel();
		im4_1_1.setName("篮球_1");
		InterestModel im4_1_2 = new InterestModel();
		im4_1_2.setName("足球_1");
		ims4_1.add(im4_1_1);
		ims4_1.add(im4_1_2);
		um4_1.setIms(ims4_1);
		TelModel tm4_1 = new TelModel();
		tm4_1.setNumber("15896352635_1");
		tm4_1.setType("手机号_1");
		um4_1.setTm(tm4_1);

		UserModel um4_2 = new UserModel();
		um4_2.setUserName("admin_2");
		um4_2.setPassWord("123_2");
		List<InterestModel> ims4_2 = new ArrayList<InterestModel>();
		InterestModel im4_2_1 = new InterestModel();
		im4_2_1.setName("篮球_2");
		InterestModel im4_2_2 = new InterestModel();
		im4_2_2.setName("足球_2");
		ims4_2.add(im4_2_1);
		ims4_2.add(im4_2_2);
		um4_2.setIms(ims4_2);
		TelModel tm4_2 = new TelModel();
		tm4_2.setNumber("15896352635_2");
		tm4_2.setType("手机号_2");
		um4_2.setTm(tm4_2);

		List<Object> list = new ArrayList<Object>();
		list.add(um4_1);
		list.add(um4_2);
		System.out.println(JsonUtil.getJsonStrFromList(list, "User", "ims", "tm"));
		// ///////////////////////////////////////////////

	}
}
JsonUtil.java
package com.flexjson.main;

import java.util.List;

import flexjson.JSONDeserializer;
import flexjson.JSONSerializer;

public class JsonUtil {

	// Java object to JSON String
	public static String getJsonStrFromObj(Object obj) {
		JSONSerializer serializer = new JSONSerializer();
		return serializer.serialize(obj);
	}

	// Java object to JSON String
	public static String getJsonStrFromObj(Object obj, String... params) {
		JSONSerializer serializer = new JSONSerializer();
		serializer = serializer.include(params);
		return serializer.serialize(obj);
	}

	// List to JSON String
	public static String getJsonStrFromList(List<Object> objs, String rootName,
			String... params) {
		JSONSerializer serializer = new JSONSerializer();
		serializer = serializer.include(params);
		serializer.rootName(rootName);
		return serializer.serialize(objs);
	}

	// Json String to Java object
	public static <T> T getObjFromJsonStr(String source, Class<T> bean) {
		return new JSONDeserializer<T>().deserialize(source, bean);
	}
	
	
}
 

UserModel.java

/**
 * 
 */
package com.flexjson.model;

import java.util.List;

/**
 * @author Administrator
 * 
 */
public class UserModel {
	private String userName;// 用户名
	private String passWord;// 密码
	private List<InterestModel> ims;
	private TelModel tm;
	
	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassWord() {
		return passWord;
	}

	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}
	
	public List<InterestModel> getIms() {
		return ims;
	}

	public void setIms(List<InterestModel> ims) {
		this.ims = ims;
	}

	public TelModel getTm() {
		return tm;
	}

	public void setTm(TelModel tm) {
		this.tm = tm;
	}

	@Override
	public String toString() {
		return "userName=" + userName + "; passWord=" + passWord + ";";
	}

}

InterestModel.java

package com.flexjson.model;

public class InterestModel {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

TelModel.java

package com.flexjson.model;

public class TelModel {
	private String number;
	private String type;

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getNumber() {
		return number;
	}

	public void setNumber(String number) {
		this.number = number;
	}

}

 

抱歉!评论已关闭.