Json-lib的简单使用
来源:互联网 发布:排序算法复杂度比较 编辑:程序博客网 时间:2024/05/21 15:47
前言
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\":\"你好\"}"));// 返回一个动态beanSystem.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;}@Overridepublic 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;}@Overridepublic 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
1 0
- Json-lib的简单使用
- Json-lib简单使用
- json-lib的使用
- JSON-Lib的使用
- json lib的使用
- json-lib的使用
- json-lib的使用
- Json-lib的使用
- JSON-lib的使用
- json-lib包的使用
- Json-lib的使用小结
- JSON简单例子(Json-lib)
- json-lib使用需要的包
- json-lib的一些使用方式
- json-lib及其使用的jar包
- 在www.json.org上公布了很多Java下的json解析工具,其中org.json和json-lib比较简单,两者使用上差不多
- 使用json-lib
- json-lib使用实例
- 装系统出现error cannot load file code 5555h 该如何解决
- [python]对self和_init_的理解
- 搭建小系统
- 深入浅出讲解:php的socket通信
- IOS上如何画出1像素的线
- Json-lib的简单使用
- C++ 覆盖 重载 隐藏 浅析
- 《JAVA程序设计》日志二
- java jdbc 连接 class.forname("driver")
- CSS经验
- Jmeter插件JMeterPlugins
- android Vibrator 使用
- java中进行高精度、大数运算总结BigInteger BigDecimal
- 顶级Javascript图表图形类库