`

JSON小结【json-lib】

    博客分类:
  • JSON
 
阅读更多

javabean:Address

 

package com.baebae.model;

public class Address
{
	private String city;
	private String district;
	private String street;
	private int no;

	getter/setter()...
}

 

 

JAVA--JSON互相转换:

 

【1】JAVA——>JSON

 

/**
	 * <1> JAVA-->JSON
	 * 单个对象Object-->JSONObject
	 * 集合List/Array/Set----->JSONArray
	 */
	@Test
	public void testObj2JSON() throws InterruptedException {
		// 1.bean---->json
		Address addr = new Address();
		addr.setCity("北京");
		addr.setDistrict("清河");
		addr.setStreet("安宁庄东路");
		addr.setNo(200);
	
		JSONObject jsonObj = JSONObject.fromObject(addr);
		System.err.println("____________jsonObj_______________");
		System.out.println(jsonObj);
		// 1.集合-->JSONArray
		Set<Address> set = new HashSet<Address>();
		Address[] addrArray = new Address[100];
		List<Address> list = new ArrayList<Address>();
		for(int i=0;i<10;i++){
			Address address = new Address();
			address.setCity("北京");
			address.setDistrict("清河");
			address.setStreet("安宁庄东路"+i+"号");
			address.setNo(200+i);
			
			list.add(address);
			addrArray[i]=address;
			set.add(address);
		}
		// 这里不能用JSONObject.fromObject(collection)
		JSONArray jsonList = JSONArray.fromObject(list);
		JSONArray jsonArray = JSONArray.fromObject(addrArray);
		JSONArray jsonSet = JSONArray.fromObject(set);
		
		// 打印结果
		Thread.sleep(3000);
		System.err.println("____________jsonList_______________");
		System.out.println(jsonList);
		Thread.sleep(3000);
		System.err.println("_____________jsonArray______________");
		System.out.println(jsonArray);
		Thread.sleep(3000);
		System.err.println("______________jsonSet_____________");
		System.out.println(jsonSet);
		Thread.sleep(3000);
	}

打印结果:

 

 

____________jsonObj_______________
{"city":"北京","district":"清河","no":200,"street":"安宁庄东路"}
____________jsonList_______________
[{"city":"北京","district":"清河","no":200,"street":"安宁庄东路0号"},{"city":"北京","district":"清河","no":201,"street":"安宁庄东路1号"},{"city":"北京","district":"清河","no":202,"street":"安宁庄东路2号"},{"city":"北京","district":"清河","no":203,"street":"安宁庄东路3号"},{"city":"北京","district":"清河","no":204,"street":"安宁庄东路4号"},{"city":"北京","district":"清河","no":205,"street":"安宁庄东路5号"},{"city":"北京","district":"清河","no":206,"street":"安宁庄东路6号"},{"city":"北京","district":"清河","no":207,"street":"安宁庄东路7号"},{"city":"北京","district":"清河","no":208,"street":"安宁庄东路8号"},{"city":"北京","district":"清河","no":209,"street":"安宁庄东路9号"}]
_____________jsonArray______________
[{"city":"北京","district":"清河","no":200,"street":"安宁庄东路0号"},{"city":"北京","district":"清河","no":201,"street":"安宁庄东路1号"},{"city":"北京","district":"清河","no":202,"street":"安宁庄东路2号"},{"city":"北京","district":"清河","no":203,"street":"安宁庄东路3号"},{"city":"北京","district":"清河","no":204,"street":"安宁庄东路4号"},{"city":"北京","district":"清河","no":205,"street":"安宁庄东路5号"},{"city":"北京","district":"清河","no":206,"street":"安宁庄东路6号"},{"city":"北京","district":"清河","no":207,"street":"安宁庄东路7号"},{"city":"北京","district":"清河","no":208,"street":"安宁庄东路8号"},{"city":"北京","district":"清河","no":209,"street":"安宁庄东路9号"},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]
______________jsonSet_____________
[{"city":"北京","district":"清河","no":207,"street":"安宁庄东路7号"},{"city":"北京","district":"清河","no":202,"street":"安宁庄东路2号"},{"city":"北京","district":"清河","no":200,"street":"安宁庄东路0号"},{"city":"北京","district":"清河","no":204,"street":"安宁庄东路4号"},{"city":"北京","district":"清河","no":205,"street":"安宁庄东路5号"},{"city":"北京","district":"清河","no":208,"street":"安宁庄东路8号"},{"city":"北京","district":"清河","no":209,"street":"安宁庄东路9号"},{"city":"北京","district":"清河","no":203,"street":"安宁庄东路3号"},{"city":"北京","district":"清河","no":206,"street":"安宁庄东路6号"},{"city":"北京","district":"清河","no":201,"street":"安宁庄东路1号"}]

  --------------------------------------------------------------------------------

 

【2】JSON---->JAVA

/**
	 * <2> JSON-->JAVA
	 * 1.如果字段名有错无法匹配,会发出警告;属性得到是null.
	 * 2.转换:	
	 *	->Object
	 * 		<1> 字符串封装成JSON 对象:【JSONObject.fromObject(jsonStr)】
	 * 		<2> JSON对象转换成Object:【(Address) JSONObject.toBean(jsonObject, Address.class)】
	 * 	->Collection
	 * 		<1> 字符串封装成JSONArray 对象:【JSONArray.fromObject(jsonArrayStr)】
	 * 		<2> JSONArray对象转换成Java集合:【(List<Address>)JSONArray.toCollection(jsonArray, Address.class)】
	 */
	@Test
	public void testJson2Java()  throws InterruptedException {
		// 1.JSON object
		String jsonStr = "{\"city\":\"北京\",\"district\":\"清河\",\"street\":\"安宁庄东路南口\",\"no\":500}";
		// 3.JSONArray
		String jsonArrayStr = "[{\"city\":\"北京\",\"district\":\"清河\",\"street\":\"安宁庄东路南口\",\"no\":500},{\"city\":\"北京\",\"district\":\"上地\",\"street\":\"安宁庄东路\",\"no\":300}]";
		
		JSONObject jsonObject = JSONObject.fromObject(jsonStr);
		JSONArray jsonArray = JSONArray.fromObject(jsonArrayStr);
		
		// JSONObject.toBean(jasonObject,Class): Bean;
		Address address  = (Address) JSONObject.toBean(jsonObject, Address.class);
		List<Address> list = (List<Address>)JSONArray.toCollection(jsonArray, Address.class);
		
		// 1.输出Object
		Thread.sleep(1000);
		System.out.println("District:"+address.getDistrict());
		// 2.输出Array
		Thread.sleep(1000);
		for(Address addr:list){
			System.out.println(addr.getCity()+"\t"+addr.getDistrict()+"\t"+addr.getStreet()+"\t"+addr.getNo());
		}
	}

 

打印结果:

District:清河
北京	清河	安宁庄东路南口	500
北京	上地	安宁庄东路	300

 

 

【总结】

JSON————>JAVA:

        ->Object                                                                                      

    <1> 字符串封装成JSON 对象:【JSONObject.fromObject(jsonStr)】                                        

    <2> JSON对象转换成Object:【(Address) JSONObject.toBean(jsonObject, Address.class)】              

        ->Collection                                                                                  

    <1> 字符串封装成JSONArray 对象:【JSONArray.fromObject(jsonArrayStr)】                               

    <2> JSONArray对象转换成Java集合:【(List<Address>)JSONArray.toCollection(jsonArray, Address.class)】

 

JAVA————>JSON:

        ObjectJSONObject.fromObject(addr)

      Collection:【JSONArray.fromObject(list)】

 

参考资料:

1.官方网站:http://sourceforge.net/projects/json-lib

2.所需jar包:

commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar

 

3
0
分享到:
评论

相关推荐

    json-lib-2.4-jdk15.jar下载

    json-lib体积小、无依赖,性能表现也不错,适合在各种Java项目中使用。 json-lib的主要功能有: 1. 简单易用:json-lib的API简单易于使用,一般只需要一行或两行代码就可以完成Java对象和JSON的相互转换。 2. 支持对象图:...

    json-lib-2.4-jdk15及其依赖包

    1、json的核心包:json-lib-2.4-jdk15.jar; 2、json-lib-2.4-jdk15.jar依赖的jar包:commons-beanutils-1.9.3.jar,commons-collections-3.2.2.jar,commons-lang-2.6.jar,commons-logging-1.2.jar,ezmorph-1.0.6...

    json-lib-2.3-jdk15基础jar包合辑

    JSON库如json-lib是Java开发中处理JSON数据的重要工具。`json-lib-2.3-jdk15`是JSON库的一个特定版本,专为JDK 1.5设计,以确保与该版本的Java环境兼容。 ### JSON Lib简介 JSON Lib是一个Java库,它提供了将Java...

    json-lib-2.2.3-jdk15.jar

    JSON-lib是一个Java库,它提供了将Java对象转换为JSON表示以及从JSON文本反序列化回Java对象的功能。该库名为`json-lib-2.2.3-jdk15.jar`,特别针对Java 1.5版本进行了优化。 JSON-lib的主要特点和功能包括: 1. *...

    json-lib-2.4-jdk15.jar

    json-lib是一个Java库,它提供了一种方便的方式来序列化和反序列化Java对象为JSON格式,以及将JSON数据转换回Java对象。 json-lib-2.4-jdk15.jar是json-lib的一个特定版本,适用于JDK 1.5环境。这个版本的库包含了...

    json-lib-2.4-jdk15.jar包

    json-lib-2.4-jdk15.jar json-lib-2.4-jdk15-sources.jar json-lib-2.4-jdk15-javadoc.jar 包含文件有:json-lib-2.4-jdk15.jar json-lib-2.4-jdk15-sources.jar json-lib-2.4-jdk15-javadoc.jar

    json-lib-2.4-jdk15和全部依赖jar包

    JSON库如`json-lib`则提供了将Java对象转换为JSON格式和从JSON字符串反序列化为Java对象的功能。`json-lib-2.4-jdk15`是JSON库的一个特定版本,专为JDK 1.5设计,确保在该环境下能够正常运行。 `json-lib`库主要...

    json架包,包好json-lib-2.2.3-jdk13.jar,json-lib-2.4-jdk14.jar以及附带的支持包

    json架包,包好json-lib-2.2.3-jdk13.jar,json-lib-2.4-jdk14.jar以及附带的支持包ezmorph-1.0.6.jar,commons-logging.jar,commons-lang.jar等

    json-lib-2.4-jdk15所需全部JAR包

    json-lib-2.4-jdk15所需全部JAR包,资源清单 json-lib-2.4-jdk15.jar 依赖: ezmorph-1.0.6.jar commons-beanutils-1.8.3.jar commons-lang-2.5.jar morph-1.1.1.jar commons-logging-1.1.1.jar commons-collections-...

    json-lib-2.3-jdk15开发包和所有依赖包

    `json-lib`是一个Java库,它提供了将Java对象转换为JSON格式,以及从JSON字符串反序列化回Java对象的功能。`json-lib-2.3-jdk15`是这个库的一个特定版本,兼容JDK 1.5,这意味着它可以在运行JDK 1.5或更高版本的Java...

    json-lib-2.2.2-jdk15.jar

    JSON库如json-lib,为开发者提供了在Java环境中处理JSON的强大工具。 json-lib-2.2.2-jdk15.jar是JSON库的一个版本,特别针对Java 1.5(JDK 1.5)进行了优化。这个压缩包包含了json-lib库的二进制文件,用于在...

    json-lib-2.4-jdk15.jar及其相关依赖

    `json-lib`是一个Java库,它提供了一种将Java对象转换为JSON表示,并将JSON数据转换回等效Java对象的方法。`json-lib-2.4-jdk15.jar`是这个库的一个特定版本,适用于JDK 1.5环境。 在Java开发中,`json-lib`库提供...

    修改版json-lib-2.4-jdk14与json-lib-2.4-jdk13 支持JDK1.4与1.3与1.5

    官网发布的json-lib-2.4-jdk13.jar,在JDK1.4中无法使用,经过不懈努力,知道问题出在哪里了,分享下: debug那个json-lib源码,最后错误定位在这个方法 protected static void removeInstance( Object instance )...

    json-lib-2.4-jdk15.jar所需全部JAR包_JSON_

    `json-lib`是一个Java库,它提供了一种将Java对象转换为JSON表示,以及将JSON内容反序列化回Java对象的机制。`json-lib-2.4-jdk15.jar`是该库的一个特定版本,适用于JDK 1.5环境。这个版本的jar文件包含了处理JSON...

    json-lib-2.2.3-jdk13.jar及相关其他5个jar包

    json-lib-2.2.3-jdk13.jar commons-beanutils-1.7.0.jar commons-collections-3.2.1.jar commons-lang-2.4.jar commons-logging-1.1.1.jar ezmorph-1.0.6.jar

    json-lib-2.4-jdk15所需要的jar包

    在Java编程环境中,处理JSON数据通常需要借助于特定的库,如`json-lib`。`json-lib-2.4-jdk15`是其中的一个版本,专为JDK 1.5设计,提供了对JSON对象与Java对象之间的转换功能。 标题中的“json-lib-2.4-jdk15所...

    json-lib-2.4-jdk13对应jar包大全

    在这个“json-lib-2.4-jdk13对应jar包大全”中,包含了以下6个关键的jar包,它们是json-lib运行和功能完整的必要组成部分: 1. **commons-collections-3.2.2.jar**:Apache Commons Collections库提供了对集合框架...

    json-lib-2.4-jdk15-sources.jar

    `json-lib`是Java中一个著名的JSON处理库,它提供了多种Java API来操作JSON数据。`json-lib-2.4-jdk15-sources.jar`是这个库的源码版本,适用于JDK 1.5环境。源码文件对于开发者来说非常宝贵,因为它允许我们深入...

    json-lib-1.1-jdk13-javadoc

    json-lib-1.1-jdk13-javadoc,欢迎下载。

    json-lib-2.4-jdk15依赖的库文件

    json-lib-2.4-jdk15依赖的库文件: 压缩包内容: commons-beanutils-1.8.0.jar commons-collections-3.1.jar commons-lang-2.5.jar commons-logging-1.1.1.jar ezmorph-1.0.6.jar json-lib-2.4-jdk15-javadoc.jar ...

Global site tag (gtag.js) - Google Analytics