ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:23.99KB ,
资源ID:29965105      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29965105.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java与json之间的互操作.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java与json之间的互操作.docx

1、java与json之间的互操作JSON-lib框架,转换JSON、XML不再困难Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象。一、准备工作1、首先要去官方下载json-lib工具包下载地址:目前最新的是2.4的版本,本示例中使用的是v2.3;json-lib还需要以下依赖包:jakarta commons-lang 2.5 jakarta commons-beanutils 1.8.0 jakarta commons-collections 3.2.1 ja

2、karta commons-logging 1.1.1 ezmorph 1.0.6 官方网址:http:/json-然后在工程中添加如下jar包:当然你也可以用2.4的json-lib库你可以在这里看看官方提供的示例:http:/json-由于本次介绍的示例需要junit工具,所以你还需要添加junit的jar文件,版本是4.8.2版本的,下载地址:如果你还不了解JSON是什么?那么你应该可以看看http:/www.json.org/json-zh.html2、要转换的JavaBean的代码如下:package com.hoo.entity;publicclass Student privat

3、eint id; private String name; private String email; private String address; private Birthday birthday; /setter、getter public String toString()returnthis.name + # + this.id + # + this.address + # + this.birthday + # + this.email; Birthday.java package com.hoo.entity;publicclass Birthday private Strin

4、g birthday; public Birthday(Stringbirthday) super();this.birthday =birthday; /setter、getter public Birthday() Override public String toString()returnthis.birthday; 注意,上面的getter、setter方法省略了,自己构建下。3、新建JsonlibTest测试类,基本代码如下:package com.hoo.test;import java.lang.reflect.InvocationTargetException;import

5、java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;import net.sf.json.JSON;import net.sf.json.JSONArray;import net.sf.json.JSONFunction;import net.sf.json.JSONObject;

6、import net.sf.json.JSONSerializer;import net.sf.json.JsonConfig;import net.sf.json.processors.JsonValueProcessor;import net.sf.json.util.PropertyFilter;import net.sf.json.xml.XMLSerializer;import mons.beanutils.PropertyUtils;import org.junit.After;import org.junit.Before;import org.junit.Test;import

7、 com.hoo.entity.Birthday;import com.hoo.entity.Student;/*function: 用json-lib转换java对象到JSON字符串* 读取json字符串到java对象,序列化jsonObject到xml*json-lib-version: json-lib-2.3-jdk15.jar* 依赖包: *commons-beanutils.jar*commons-collections-3.2.jar*ezmorph-1.0.3.jar*commons-lang.jar*commons-logging.jar*author hoojo*creat

8、eDate Nov 28, 2010 2:28:39 PM*file JsonlibTest.java*package com.hoo.test*project WebHttpUtils*blog *email hoojo_*version 1.0*/SuppressWarnings( deprecation, unchecked )publicclass JsonlibTest private JSONArrayjsonArray = null; private JSONObjectjsonObject = null; private Student bean =null; Before p

9、ublicvoid init() jsonArray = new JSONArray(); jsonObject = new JSONObject(); bean = new Student();bean.setAddress(address);bean.setEmail(email);bean.setId(1);bean.setName(haha);Birthday day = new Birthday();day.setBirthday(2010-11-22);bean.setBirthday(day); After publicvoid destory() jsonArray = nul

10、l;jsonObject = null;bean = null;System.gc(); publicfinalvoid fail(Stringstring) System.out.println(string); publicfinalvoid failRed(Stringstring) System.err.println(string); 上面的init会在每个方法之前运行,destory会在每个方法完成后执行。分别用到了junit的Before、After注解,如果你对junit的这些注解不是很了解,可以看看junit官方的测试用例的example和doc;JSONObject是将Ja

11、va对象转换成一个json的Object形式,JSONArray是将一个Java对象转换成json的Array格式。那什么是json的Object形式、Array形式?用通俗易懂的方法将,所谓的json的Object形式就是一个花括号里面存放的如JavaMap的键值对,如:name:hoojo, age: 24;那么json的Array形式呢?就是中括号,括起来的数组。如: json, true, 22;如果你还想了解更多json方面的知识,请看:http:/www.json.org/json-zh.html除了上面的JSONArray、JSONObject可以将Java对象转换成JSON或是

12、相反,将JSON字符串转换成Java对象,还有一个对象也可以完成上面的功能,它就是JSONSerializer;下面我们就来看看它们是怎么玩转Java对象和JSON的。二、 Java对象序列化成JSON对象1、将JavaObject转换吃JSON字符串在JsonlibTest中添加如下代码:/*=Java Object JSON String =*/*function:转Java Bean对象到JSON*author hoojo*createDate Nov 28, 2010 2:35:54 PM*/TestpublicvoidwriteEntity2JSON() fail(=Java Bea

13、n JSON Object=);fail(JSONObject.fromObject(bean).toString();fail(=Java Bean JSON Array=);fail(JSONArray.fromObject(bean).toString();/array会在最外层套上fail(=Java Bean JSON Object =);fail(JSONSerializer.toJSON(bean).toString(); fail(=JsonConfig=);JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registe

14、rJsonValueProcessor(Birthday.class, new JsonValueProcessor() public Object processArrayValue(Object value, JsonConfig jsonConfig) if (value =null) returnnew Date();return value;public Object processObjectValue(String key, Object value, JsonConfigjsonConfig) fail(key: + key);return value + #修改过的日期; )

15、;jsonObject = JSONObject.fromObject(bean, jsonConfig); fail(jsonObject.toString();Student student = (Student) JSONObject.toBean(jsonObject, Student.class);fail(jsonObject.getString(birthday);fail(student.toString(); fail(#JsonPropertyFilter#);jsonConfig.setJsonPropertyFilter(new PropertyFilter() pub

16、licboolean apply(Object source, String name, Object value) fail(source + % + name + - + value);/忽略birthday属性if (value !=null & Birthday.class.isAssignableFrom(value.getClass() return true;return false;); fail(JSONObject.fromObject(bean, jsonConfig).toString();fail(#JavaPropertyFilter#);jsonConfig.se

17、tRootClass(Student.class); jsonConfig.setJavaPropertyFilter(new PropertyFilter() publicboolean apply(Object source, String name, Object value) fail(name + + value + # + source);if (id.equals(name)| email.equals(name) value = name + ; return true;return false;); /jsonObject = JSONObject.fromObject(be

18、an, jsonConfig); /student = (Student) JSONObject.toBean(jsonObject,Student.class); /fail(student.toString();student = (Student) JSONObject.toBean(jsonObject, jsonConfig);fail(Student: + student.toString();fromObject将Java对象转换成json字符串,toBean将json对象转换成Java对象;上面方法值得注意的是使用了JsonConfig这个对象,这个对象可以在序列化的时候对Ja

19、vaObject的数据进行处理、过滤等上面的jsonConfig的registerJsonValueProcessor方法可以完成对象值的处理和修改,比如处理生日为null时,给一个特定的值。同样setJsonPropertyFilter和setJavaPropertyFilter都是完成对转换后的值的处理。运行上面的代码可以在控制台看到如下结果:=Java Bean JSONObject=address:address,birthday:birthday:2010-11-22,email:email,id:1,name:haha=Java Bean JSONArray=address:add

20、ress,birthday:birthday:2010-11-22,email:email,id:1,name:haha=Java Bean JSONObject =address:address,birthday:birthday:2010-11-22,email:email,id:1,name:haha=JsonConfig=key:birthdayaddress:address,birthday:2010-11-22#修改过的日期,email:email,id:1,name:haha2010-11-22#修改过的日期haha#1#address#null#email#JsonProper

21、tyFilter#haha#1#address#2010-11-22#email%address-addresshaha#1#address#2010-11-22#email%birthday-2010-11-22haha#1#address#2010-11-22#email%email-emailhaha#1#address#2010-11-22#email%id-1haha#1#address#2010-11-22#email%name-hahaaddress:address,email:email,id:1,name:haha#JavaPropertyFilter#addressaddr

22、ess#null#0#null#null#nullbirthday2010-11-22#修改过的日期#null#0#address#null#nullemailemail#null#0#address#null#nullid1#null#0#address#null#nullnamehaha#null#0#address#null#nullStudent:haha#0#address#null#null2、将JavaList集合转换吃JSON字符串/*function:转换Java List集合到JSON*author hoojo*createDate Nov 28, 2010 2:36:15

23、 PM*/TestpublicvoidwriteList2JSON() fail(=Java List JSON Array=);List stu = new ArrayList();stu.add(bean);bean.setName(jack);stu.add(bean);fail(JSONArray.fromObject(stu).toString();fail(JSONSerializer.toJSON(stu).toString();运行此方法后,可以看到控制台输出:=Java List JSONArray=address:address,birthday:birthday:2010

24、-11-22,email:email,id:1,name:jack,address:address,birthday:birthday:2010-11-22,email:email,id:1,name:jackaddress:address,birthday:birthday:2010-11-22,email:email,id:1,name:jack,address:address,birthday:birthday:2010-11-22,email:email,id:1,name:jack如果你是转换List集合,一定得用JSONArray或是JSONSrializer提供的序列化方法。如果你用JSONObject.fromObject方法转换List会出现异常,通常使用JSONSrializer这个JSON序列化的方法,它会自动识别你传递的对象的类型,然后转换成相应的JSON字符串。3、将Map集合转换成JSON对象/*function:转Java Map对象到JSON*author hoojo*createDate Nov 28, 2010 2:37:35 PM*/TestpublicvoidwriteMap2JSON() Map map = new HashMap();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1