jsonjson处理经典课件.ppt

上传人:sccc 文档编号:5376483 上传时间:2023-07-01 格式:PPT 页数:27 大小:604.01KB
返回 下载 相关 举报
jsonjson处理经典课件.ppt_第1页
第1页 / 共27页
jsonjson处理经典课件.ppt_第2页
第2页 / 共27页
jsonjson处理经典课件.ppt_第3页
第3页 / 共27页
jsonjson处理经典课件.ppt_第4页
第4页 / 共27页
jsonjson处理经典课件.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《jsonjson处理经典课件.ppt》由会员分享,可在线阅读,更多相关《jsonjson处理经典课件.ppt(27页珍藏版)》请在三一办公上搜索。

1、JSON及JSON处理,什么是JSON,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language,Standard ECMA-262 3rd Edition-December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C+,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。更多信息的可以查看json的官方网站http:/json.o

2、rg。,JSON建构于两种结构-1,“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associative array)。在Java语言中,我们可以将它理解成HashMap.对象是一个无序的“名称/值对”集合。一个对象以“”(左括号)开始,“”(右括号)结束。每个“名称”后跟一个“:”(冒号);“名称/值 对”之间使用“,”(逗号)分隔。示例:var js

3、on=“name”:”Jack”,”age”:90,”Marray”:true;,JSON建构于两种结构-2,值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array或List)。数组是值(value)的有序集合。一个数组以“”(左中括号)开始,“”(右中括号)结束。值之间使用“,”(逗号)分隔。示例:var json=“Jack”,”Rose”,”Tom”,89,true,false;,JSON的解析:,JSON的解析分成两种情况:将Object/Array解析成JSON字符串,这种情况一般用于响应用户的输出。将Json串解析成Objec

4、t或是Array,这种情况一般用于服务器接收到了用户请求的JSON串。目前比较流行的解析工具为:json-lib。fastjson.,使用json-lib解析:,准备jar包:(可以从struts2的包中找到他们,因为struts2用它)commons-beanutils.jarcommons-collections-3.1.jarcommons-lang-2.3.jarcommons-logging.jarezmorph-1.0.4.jarjson-lib-2.3-jdk15.jar这是json-lib的核心包,上面都是它的依赖包,Json-lib:,将Array解析成json串。使用JSO

5、NArray可以解析Array类型:,Json-lib:,将JavaBean/Map解析成JSON串:使用JSONObject:,Json-lib:,使用JsonConfig过虑属性:适用于JavaBean/Map,输出结果为:“id”:“A001”,注意,没有name属性。,Json-lib:,将json串转换成Array:,以下是输出结果:,Json-lib:,将json串转成JavaBean/Map:,Fastjson介绍:,Fastjson是一个Java语言编写的JSON处理器。1、遵循http:/json.org标准,为其官方网站收录的参考实现之一。2、功能强大,支持JDK的各种类型

6、,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。4、开源,使用Apache License 2.0协议开源。、支持使用注解对字段的过虑。Fastjson的最主要的使用入口是com.alibaba.fastjson.JSON,JSON类的功能:,public static final Object parse(String text);/把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(Strin

7、g text);/把JSON文本parse成JSONObject public static final T parseObject(String text,Class clazz);/把JSON文本parse为JavaBeanpublic static final JSONArray parseArray(String text);/把JSON文本parse成JSONArray public static final List parseArray(String text,Class clazz);/把JSON文本parse成JavaBean集合 public static final St

8、ring toJSONString(Object object);/将JavaBean序列化为JSON文本 public static final String toJSONString(Object object,boolean prettyFormat);/将JavaBean序列化为带格式的JSON文本 public static final Object toJSON(Object javaObject);将JavaBean转换为JSONObject或者JSONArray。,FastJson示例:将Java对象转成JSON串:,FastJson:使用注解过虑去除某些字段:,FastJso

9、n-将字符串转成对象:,更多功能详情以下示例仅供参考.,其他示例:对某些字段时间名称转换:,使用PropertyFilter过虑不需要的字段:,ValueFilter值过虑,使用JSONField定制序列化,原型接口,原型接口支持。这个功能借鉴自jackson,比较好玩,也许能够节省代码,循环引用,很多用户在初次使用fastjson时都遇到了循环引用的问题,这是反映最多的问题,我越来越认识到支持循环引用的必要性。经过测试,加入循环应用的支持对性能的影响很小,小于5。我决定在1.1.3加入循环应用支持,而且是缺省打开这个特性。fastjson支持的循环应用是自然的,不需要象jackson那样,需

10、要Annotation设置。fastjson支持的引用,是基于path的,方便javascript解析。Fastjson目前已经为我们解决好了循环引用的问题。,循环引用的解决办法,在1.1.3版本之前,fastjson不支持循环引用。有些对象存在循环引用,例如:parent和children之间存在循环应用了,执行JSON序列化时会报错:“com.alibaba.fastjson.JSONException:maybe circular references”。解决办法一在parent字段上添加修饰符transient 解决办法二使用Annotation JSONField标注不需要序列化getParent属性,按字段名称排序后输出,很多场合需要按字段名称排序之后输出,为了满足这一需求,fastjson 提供了一个新特性SortField。使用方式如下:JSON.toJSONString(object,SerializerFeature.SortField),自定义序列化,自省支持,在标准中,将对象序列化为JSON文本之后,就丢失了类型信息。虽然fastjson能够支持parse时传入Class来实现类型的识别,但是这个有局限性,在fastjson 1.1.3之后,完善支持一个特性,就是自省。,输出的信息如下:注意type信息,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号