`
lxz891117
  • 浏览: 33275 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Json-lib的简单使用

 
阅读更多

前言

JSON-lib是一个能够将java bean/map/collection/java array/xml转换成JSON并且反过来将JSON转换成java对象的类库,它至少需要依赖如下的jar包,其他的依赖包可以参考官网http://json-lib.sourceforge.net/dependencies.html。不过现在并不推荐使用这个组件,官方也已经停止更新,可以使用jackson json。

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


JsonConfig参考官网的api文档说明http://json-lib.sourceforge.net/apidocs/jdk15/index.html

JSON是一个接口,其实现类有JSONArray, JSONNull, JSONObject



JSONSerializer

例子

1、基本用法,其中JSON转换后的java对象是MorphDynaBean
import java.util.Date;

import net.sf.ezmorph.bean.MorphDynaBean;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;

public class Demo {
	public static void main(String[] args) {
		System.out.println(JSONSerializer.toJSON(new Date()));// 打印当前日期的json格式
		MorphDynaBean db = (MorphDynaBean) JSONSerializer.toJava(JSONObject
				.fromObject("{\"Hello\":\"你好\"}"));// 返回一个动态bean
		System.out.println(db.get("Hello"));
	}
}
{"date":1,"day":3,"hours":10,"minutes":6,"month":6,"seconds":23,"time":1435716383919,"timezoneOffset":-480,"year":115}
你好


JSONObject

例子

1、将bean/map转换为JSONObject,这里设置JsonConfig的一个属性,即循环的处理策略,其他属性的用法类似
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;

public class Demo {
	public static class CycleObject {
		private String id;
		private String name;
		private CycleObject co = this;

		public String getId() {
			return id;
		}

		public void setId(String id) {
			this.id = id;
		}

		public String getName() {
			return name;
		}

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

		public CycleObject getCo() {
			return co;
		}

		public void setCo(CycleObject co) {
			this.co = co;
		}
	}

	public static void main(String[] args) {
		CycleObject object = new CycleObject();
		object.setId("1");
		object.setName("co");
		JsonConfig jsonConfig = new JsonConfig();
		// LENIENT:循环的成员变量返回null;NOPROP:不显示循环的成员变量;STRICT:报异常
		jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
		JSONObject json = JSONObject.fromObject(object, jsonConfig);
		System.out.println(json);
	}
}
{"co":null,"id":"1","name":"co"}

2、JSON转换成MorphDynaBean
import net.sf.ezmorph.bean.MorphDynaBean;
import net.sf.json.JSONObject;

public class Demo {
	public static class CycleObject {
		private String id;
		private String name;
		private CycleObject co = this;

		public String getId() {
			return id;
		}

		public void setId(String id) {
			this.id = id;
		}

		public String getName() {
			return name;
		}

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

		public CycleObject getCo() {
			return co;
		}

		public void setCo(CycleObject co) {
			this.co = co;
		}
	}

	public static void main(String[] args) {
		String json = "{name=\"json\",bool:true,int:1}";
		JSONObject jsonObject = JSONObject.fromObject(json);
		MorphDynaBean bean = (MorphDynaBean) JSONObject.toBean(jsonObject);
		System.out.println(bean.get("name"));
	}
}
json

3、JSON转换成普通bean
import net.sf.json.JSONObject;

public class Demo {
	public static class Bean {
		private String id;
		private String name;

		public String getId() {
			return id;
		}

		public void setId(String id) {
			this.id = id;
		}

		public String getName() {
			return name;
		}

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

		@Override
		public String toString() {
			return "id=" + id + ";name=" + name;
		}
	}

	public static void main(String[] args) {
		String json = "{id=\"1\",name=\"json\"}";
		JSONObject jsonObject = JSONObject.fromObject(json);
		Bean bean = (Bean) JSONObject.toBean(jsonObject, Bean.class);
		System.out.println(bean);
	}
}
id=1;name=json


JSONArray

例子

1、
    boolean[] boolArray = new boolean[]{true,false,true};  
    JSONArray jsonArray = JSONArray.fromObject( boolArray );  
    System.out.println( jsonArray );  
    // prints [true,false,true]  

    List list = new ArrayList();  
    list.add( "first" );  
    list.add( "second" );  
    JSONArray jsonArray = JSONArray.fromObject( list );  
    System.out.println( jsonArray );  
    // prints ["first","second"]  

    JSONArray jsonArray = JSONArray.fromObject( "['json','is','easy']" );  
    System.out.println( jsonArray );  
    // prints ["json","is","easy"]  

2、
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class Demo {
	public static class Bean {
		private String id;
		private String name;

		public String getId() {
			return id;
		}

		public void setId(String id) {
			this.id = id;
		}

		public String getName() {
			return name;
		}

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

		@Override
		public String toString() {
			return "id=" + id + ";name=" + name;
		}
	}

	public static void main(String[] args) {
		boolean[] boolArray = new boolean[] { true, false, true };
		JSONArray jsonArray = JSONArray.fromObject(boolArray);
		Bean bean = new Bean();
		bean.setId("1");
		bean.setName("json");
		JSONObject jsonObject = JSONObject.fromObject(bean);
		jsonObject.put("data", jsonArray);
		System.out.println(jsonObject);
	}
}
{"id":"1","name":"json","data":[true,false,true]}

xml

这个自己参考官网的例子吧http://json-lib.sourceforge.net/usage.html


分享到:
评论

相关推荐

    json-lib-2.4-jdk15.jar下载

    1. 简单易用:json-lib的API简单易于使用,一般只需要一行或两行代码就可以完成Java对象和JSON的相互转换。 2. 支持对象图:可以将复杂的对象层次结构与JSON相互转换,支持List、Map、数组等类型。 3. 支持注解:支持@...

    json-lib-2.2.3-jdk15.jar

    4. **易用性**:JSON-lib提供了一种简单直观的API,使得开发者能够快速地进行JSON操作,减少编码时间。 5. **依赖管理**:`json-lib-2.2.3-jdk15.jar`可能包含了其运行所需的其他依赖库,这使得开发者在使用时无需...

    json-lib应用所有jar

    1. **易用性**:JSON-lib提供了简单直观的API,使得Java对象与JSON之间的转换变得简单。例如,可以使用`net.sf.json.JSONObject`来表示一个JSON对象,`net.sf.json.JSONArray`表示JSON数组。 2. **灵活性**:它支持...

    JSON-lib包json-lib-0.8.jar和json-lib-0.9.jar包

    6. **API使用**:理解JSON-lib提供的核心类,如JSONObject、JSONArray、JSONUtil等,以及它们的方法,是有效使用此库的关键。开发者需要学习如何创建、读取、修改JSON对象和数组,以及如何在Java对象和JSON数据之间...

    json-lib-2.4和相应的依赖包

    JSON库如json-lib-2.4是Java开发者在处理JSON数据时的重要工具,它提供了一系列API,使得JSON与Java对象之间的转换变得更加简单。本文将深入探讨json-lib-2.4及其在Java开发中的应用。 首先,json-lib-2.4是一个...

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

    `json-lib`库的使用使得Java开发者在处理JSON数据时更加便捷,但需要注意的是,随着Java生态的发展,现在更流行的是使用Jackson、Gson或Google的AutoValue库来处理JSON,它们提供了更多特性和更好的性能。...

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    这个库支持多种Java类型,包括基本类型、集合、Map、自定义Java类等,使得JSON与Java之间的数据交互变得简单。 `struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持...

    使用json-lib实现json与Java对象的互转

    要使用 `json-lib` 实现 JSON 与 Java 对象的互转,首先需要在项目中引入该库。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加如下依赖: ```xml <groupId>net.sf.json-lib</groupId> <artifactId>json-lib...

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

    JSON-Lib是一个Java库,设计用于处理JSON格式的数据,使得在Java应用程序中进行JSON操作变得更加简单。 JSON-Lib-2.4-jdk15是JSON-Lib的一个特定版本,它针对JDK 1.5进行了优化,以适应该版本的Java环境。这个库...

    json-lib所用的jar包

    3. `commons-beanutils-1.8.0.jar`:Apache Commons BeanUtils库,提供了简单且灵活的方式来操作JavaBean属性,这在`json-lib`将Java对象转换为JSON时可能会用到,因为JavaBean是Java对象的一种常见表示形式。...

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

    json-lib是一个Java库,用于将Java对象转换为JSON格式,反之亦然。该库特别适用于处理复杂的Java对象并将其转换为JSON字符串,以便在服务器和客户端之间进行数据交换。 在这个“json-lib-2.4-jdk13对应jar包大全”...

    json-lib-2.4 jar 程序文件

    JSON-Lib是Java平台上的一个库,它提供了处理JSON数据的API,使得在Java中生成、解析和操作JSON对象变得简单。本文将详细介绍`json-lib-2.4 jar`程序文件及其在Java开发中的应用。 `json-lib-2.4 jar`是JSON-Lib的...

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

    总的来说,`json-lib-2.3-jdk15`是一个强大的工具,为Java开发者提供了处理JSON数据的强大支持,尤其对于那些使用JDK 1.5环境的项目。通过其丰富的API和高效的性能,开发者可以方便地进行JSON操作,提升项目的开发...

    json-lib.jar

    总的来说,`json-lib.jar`是一个强大的JSON处理工具,为Java开发者提供了一种简单的方式来处理JSON数据,广泛应用于各种需要数据交换的Java应用程序中。通过理解和熟练使用这个库,开发者可以提高其项目的数据处理...

    json-lib最新版本 含源码

    它提供了丰富的API,使得JSON操作变得更加简单。 `json-lib`的最新版本包含源码,这对于开发者来说是一份宝贵的学习资源。通过查看源码,开发者可以深入了解其内部实现机制,学习如何处理JSON数据,如何优化性能,...

    json-lib-2.1-jdk15.jar

    1. **易用性**:json-lib提供了简单直观的API,使得开发者可以快速地学习和使用。 2. **兼容性**:由于支持多种Java数据结构,json-lib可以方便地与现有的Java代码集成。 3. **性能**:尽管JSON库众多,json-lib在...

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

    下面是一个简单的示例,展示了如何使用`json-lib`和`jsoup`来解析API返回的JSON数据: ```java import net.sf.json.JSONObject; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; // 假设从API获取到的...

    json-lib api

    JSON库如json-lib在Java开发中起到了关键作用,它允许开发者将Java对象转换为JSON格式,反之亦然,使得数据交换变得简单易行。 json-lib是一个开源的Java库,提供了多种方式来处理JSON数据,包括将Java对象序列化为...

    json-lib-2.4-jdk15源码和jar包

    总的来说,`json-lib`是一个强大的工具,它为Java开发者提供了一种简单且灵活的方式来处理JSON数据。通过源代码和二进制JAR包,开发者既可以深入理解其内部工作原理,也能方便地在项目中集成并使用JSON功能。然而,...

Global site tag (gtag.js) - Google Analytics