JSON在服务器端的生成,和所用jar包

先生成一个service类,用于生成指定的数据类型。

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class JsonService {
	public JsonService() {

	}

	public Person getPerson() {
		Person person = new Person(1001, "jack", "beijing");
		return person;
	}

	public List<Person> getList() {
		List<Person> list = new ArrayList<Person>();
		Person person1 = new Person(1001, "jack", "beijing");
		Person person2 = new Person(1002, "rose", "gongdong");
		list.add(person1);
		list.add(person2);
		return list;
	}

	public List<String> getListString() {
		List<String> list = new ArrayList<String>();
		list.add("beijing");
		list.add("shanghai");
		list.add("jinna");
		return list;
	}

	public List<Map<String, Object>> getListMap() {
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		Map<String, Object> map1 = new HashMap<String, Object>();
		map1.put("id", 1001);
		map1.put("name", "liming");
		Map<String, Object> map2 = new HashMap<String, Object>();
		map2.put("id", 1002);
		map2.put("name", "zhangsan");
		list.add(map1);
		list.add(map2);
		return list;
	}
}
我们创建JsonTool类,用于生成json数据。

import net.sf.json.JSONObject;

public class JsonTools {
	public JsonTools() {

	}

	/**
	 * 
	 * @param key表示JSON字符串的头信息
	 * @param value是对解析的集合的类型
	 * @return
	 */
	public static String JsonCreat(String key, Object value) {
		JSONObject jsonObject = new JSONObject();
		jsonObject.put(key, value);
		return jsonObject.toString();
	}
}
下面是创建的一个测试类,调用不同的数据形式,来生成不同的JSON数据类型。

public class TestJson {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String msg="";
		JsonService service=new JsonService();
		/*Person person=service.getPerson();
		msg=JsonTools.JsonCreat("person", person);
		System.out.println(msg);*/
		
		
		//msg=JsonTools.JsonCreat("persons", service.getList());
		//System.out.println(msg);
		
		//msg=JsonTools.JsonCreat("persons", service.getListString());
		//System.out.println(msg.toString());
		
		msg=JsonTools.JsonCreat("persons", service.getListMap());
		System.out.println(msg.toString());
		
	}

}

输出结果{"person":[{"address":"beijing","id":1001,"name":"jack"},{"address":"gongdong","id":1002,"name":"rose"}]};这是list的。


在使用服务器时,我们调用servlet来返回客户端一个json数据。特别注意在servlet生命周期中,我们需要将service初始化。

public class JsonAction extends HttpServlet {
	private JsonService jsonService;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=utf-8");
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		String jsonString = JsonTools.JsonCreat("person", jsonService
				.getList());
		out.println(jsonString);
		out.flush();
		out.close();
	}

	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
		jsonService=new JsonService();
	}

}
当访问这个servlet时,返回的就是一个一个 JSON数据。

此工程我们用到了几个包

commons-lang.jar用来处理Java基本对象方法的工具类包,可以简化很多平时经常要用到的写法,例如判断字符串是否为空等等

commons-beanutils.jar是对bean操作的类,可以访问类的属性及GET和SET方法.

commons-collections.jar   为Java标准的Collections API提供了相当好的补充。在此基础上对其常用的数据结构操作进行了很好的封装、抽象和补充。保证性能的同时大大简化代码。

commons-logging.jar 是输出LOG用的

ezmorph.jar使用json时候将会用到的一个jar包,发现这个包在网上提供的比较少.缺少这个包可能导致Could not initialize class net.sf.json.JsonConfig

json-lib-2.2.2-jdk15.jarjson对跨项目的传输数据有着很好的封装,项目之间只需要JsonArray.ForObject(Obejct o)格式化json格式进行传输

这些包下载点击:http://download.csdn.net/detail/fengzy1990/7726595

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSONObject必包的Jar包json生成的简单案例 所有commons包的网址: http://commons.apache.org/index.html 组装和解析JSONObject的Json字符串,共需要下面六个包: 1、json-lib 2、commons-beanutils 3、commons-collections 4、commons-lang 5、commons-logging 6、ezmorph 第零个包: json-lib-2.4-jdk15.jar http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/ 下载地址:http://nchc.dl.sourceforge.net/project/json-lib/json-lib/json-lib-2.4/json-lib-2.4-jdk15.jar 第一个包: commons-beanutils-1.9.2.jar http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgi 下载地址:http://mirrors.cnnic.cn/apache//commons/beanutils/binaries/commons-beanutils-1.9.2-bin.zip 第二个包: (注:此包不可用,改用旧包) commons-collections4-4.0.jar http://commons.apache.org/proper/commons-collections/download_collections.cgi 下载地址:http://apache.dataguru.cn//commons/collections/binaries/commons-collections4-4.0-bin.zip (注:此包可用,低版本的包稳定性更高) commons-collections-3.2.1.jar http://commons.apache.org/proper/commons-collections/download_collections.cgi 下载地址:http://mirrors.hust.edu.cn/apache//commons/collections/binaries/commons-collections-3.2.1-bin.zip 第三个包: (注:此包不可用,会造成程序出错,改用旧包) commons-lang3-3.3.2.jar http://commons.apache.org/proper/commons-lang/download_lang.cgi 下载地址:http://apache.dataguru.cn//commons/lang/binaries/commons-lang3-3.3.2-bin.zip (注:此包可用,低版本的包稳定性更高) commons-lang-2.6-bin http://commons.apache.org/proper/commons-lang/download_lang.cgi?Preferred=http%3A%2F%2Fapache.dataguru.cn%2F 下载地址:http://apache.dataguru.cn//commons/lang/binaries/commons-lang-2.6-bin.zip 第四个包: commons-logging-1.1.3.jar http://commons.apache.org/proper/commons-logging/download_logging.cgi 下载地址:http://apache.dataguru.cn//commons/logging/binaries/commons-logging-1.1.3-bin.zip 第五个包: ezmorph-1.0.2.jar http://ezmorph.sourceforge.net/ http://sourceforge.net/projects/ezmorph/files/ezmorph/ 下载地址:http://nchc.dl.sourceforge.net/project/ezmorph/ezmorph/ezmorph-1.0.6/ezmorph-1.0.6.jar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值