日期:2014-05-16  浏览次数:20413 次

SpringMVC 生成JSON(一)

本示例基于前面几篇文章的代码。

一、JSON-lib框架,转换JSON

???1、首先要去官方下载json-lib工具包

本示例中使用的是v2.3;json-lib还需要以下依赖包:

jakarta commons-lang 2.5

jakarta commons-beanutils 1.8.0

jakarta commons-collections 3.2.1

jakarta commons-logging 1.1.1

ezmorph 1.0.6

官方网址:http://json-lib.sourceforge.net/

然后在工程中添加如下jar包:

clip_image002

?

如果你还不了解JSON是什么?那么你应该可以看看http://www.json.org/json-zh.html

?

??? 2、 要转换的JavaBean的代码如下:

??????

package com.wy.pojo;

import java.io.Serializable;

/**
 * User对象必须实现serializable接口,因为放在session中的数据必须是可序列化的。
 * 否则会出现错误 setAttribute: Non-serializable attribute...
 * @author Administrator
 * @version 2011-10-6
 */
public class User implements Serializable {
	
    private static final long serialVersionUID = 1L;
	private String username;
	private String password;
	private int age;
	private String sex;
	private String birthday;

	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 int getAge(){
    	return age;
    }

	public void setAge(int age){
    	this.age = age;
    }

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getBirthday() {
		return birthday;
	}

	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return this.username +"#"+ this.password +"#"+ this.age +"#"+ this.sex +"#"+ this.birthday;
	}

}

?

3、 新建JsonlibTest测试类,基本代码如下:

?

?

?

package com.wy.junittest;

import org.junit.Before;
import org.junit.Test;

import com.wy.controller.annotation.EntryOrJsonController;

public class JsonlibTest {

	@Before
	public void setUp() throws Exception {
	}

	//@Test
	public void testEntry2Json() {
		new EntryOrJsonController().entry2Json();
	}

	//@Test
	public void testList2Json() {
		new EntryOrJsonController().list2Json();
	}
	
	//@Test
	public void testMap2Json() {
		new EntryOrJsonController().map2Json();
	}
	
	//@Test
	public void testJson2Entry() {
		new EntryOrJsonController().json2Entry();
	}
	
	//@Test
	public void testJson2MorphDynaBean() {
		new EntryOrJsonController().json2MorphDynaBean();
	}
	
	//@Test
	public void testJson2Array() {
		new EntryOrJsonController().json2Array();
	}
	
	//@Test
	public void testJson2List() {
		new EntryOrJsonController().json2List