android json解析

JSON 之FastJson解析

别说谁变了你拦得住时间么 提交于 2019-12-17 03:47:11
一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson; 功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0) Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); //

Android2.3解析json出错

时光总嘲笑我的痴心妄想 提交于 2019-12-10 03:42:56
在android2.3上json出现此问题,提示错误“JSONException: Value of type java.lang.String cannot be converted to JSONObject”,而4.0上没问题。 部分错误log如下: 1 12 - 18 20 : 23 : 27.389 : W / System.err( 12927 ): org.json.JSONException: Value  of type java.lang.String cannot be converted to JSONObject 2 12 - 18 20 : 23 : 27.389 : W / System.err( 12927 ): at org.json.JSON.typeMismatch(JSON.java: 107 ) 3 12 - 18 20 : 23 : 27.389 : W / System.err( 12927 ): at org.json.JSONObject. < init > (JSONObject.java: 158 ) 4 12 - 18 20 : 23 : 27.389 : W / System.err( 12927 ): at org.json.JSONObject. < init > (JSONObject.java: 171 )

Java 中 Snack3的使用

天大地大妈咪最大 提交于 2019-12-09 23:24:33
网上看了一篇Java 中 Gson的使用,所以也跟着写篇Java 中 Snack3的使用 JSON 是一种文本形式的数据交换格式,从Ajax的时候开始流行,它比XML更轻量、比二进制容易阅读和编写;解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson、Snack3等。 Snack3 基于jdk8,60kb大小,非常小巧。 <dependency> <groupId>org.noear</groupId> <artifactId>snack3</artifactId> <version>3.1.5.11</version> </dependency> Snack3 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以 ONode 表示, ONode 也即 One node 之意,代表任何类型,也可以转换为任何类型。 强调文档树的操控和构建能力 做为中间媒体,方便不同格式互转 高性能 Json path 查询(兼容性和性能很赞) 支持 序列化、反序列化 一、Snack3的基本用法 Snack3 提供了几个快捷函数: load(strOrObj) , loadStr(str) , loadObj(obj) 用于解析和加载; stringify(obj) ,

Java 中 Snack3的使用

蹲街弑〆低调 提交于 2019-12-07 22:36:29
新疆SEO :网上看了一篇Java 中 Gson的使用,所以也跟着写篇Java 中 Snack3的使用 JSON 是一种文本形式的数据交换格式,从Ajax的时候开始流行,它比XML更轻量、比二进制容易阅读和编写;解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson、Snack3等。 Snack3 基于jdk8,60kb大小,非常小巧。 <dependency> <groupId>org.noear</groupId> <artifactId>snack3</artifactId> <version>3.1.5.11</version> </dependency> Snack3 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以 ONode 表示, ONode 也即 One node 之意,代表任何类型,也可以转换为任何类型。 强调文档树的操控和构建能力 做为中间媒体,方便不同格式互转 高性能 Json path 查询(兼容性和性能很赞) 支持 序列化、反序列化 一、Snack3的基本用法 Snack3 提供了几个快捷函数: load(strOrObj) , loadStr(str) , loadObj(obj) 用于解析和加载; stringify(obj

Java 中 Snack3的使用

安稳与你 提交于 2019-12-07 16:21:28
网上看了一篇Java 中 Gson的使用,所以也跟着写篇Java 中 Snack3的使用 JSON 是一种文本形式的数据交换格式,从Ajax的时候开始流行,它比XML更轻量、比二进制容易阅读和编写;解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson、Snack3等。 Snack3 基于jdk8,60kb大小,非常小巧。 <dependency> <groupId>org.noear</groupId> <artifactId>snack3</artifactId> <version>3.1.5.11</version> </dependency> Snack3 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以 ONode 表示, ONode 也即 One node 之意,代表任何类型,也可以转换为任何类型。 强调文档树的操控和构建能力 做为中间媒体,方便不同格式互转 高性能 Json path 查询(兼容性和性能很赞) 支持 序列化、反序列化 一、Snack3的基本用法 Snack3 提供了几个快捷函数: load(strOrObj) , loadStr(str) , loadObj(obj) 用于解析和加载; stringify(obj) ,

Java 中 Snack3的使用

旧城冷巷雨未停 提交于 2019-12-07 16:20:28
网上看了一篇Java 中 Gson的使用,所以也跟着写篇Java 中 Snack3的使用 JSON 是一种文本形式的数据交换格式,从Ajax的时候开始流行,它比XML更轻量、比二进制容易阅读和编写;解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson、Snack3等。 Snack3 基于jdk8,60kb大小,非常小巧。 <dependency> <groupId>org.noear</groupId> <artifactId>snack3</artifactId> <version>3.1.5.11</version> </dependency> Snack3 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以 ONode 表示, ONode 也即 One node 之意,代表任何类型,也可以转换为任何类型。 强调文档树的操控和构建能力 做为中间媒体,方便不同格式互转 高性能 Json path 查询(兼容性和性能很赞) 支持 序列化、反序列化 一、Snack3的基本用法 Snack3 提供了几个快捷函数: load(strOrObj) , loadStr(str) , loadObj(obj) 用于解析和加载; stringify(obj) ,

json的一些属性用法

丶灬走出姿态 提交于 2019-12-05 06:07:51
首先看下面的配置文件中的两种写法:当然Action所在的包必须继承json-default: <package name="default" extends ="json-default" > 第一种: <action name="upload_*" class="uploadAction" method="{1}"> <result type="json"> <param name="root">fileName</param> </result> </action> 第二种: <action name="uploadJson" class="uploadJsonAction" method="upload"> <result type="json" name="success"></result> </action> 当然,两种方式都能达到相应的效果,但是开发中我们建议使用 第一种 ; 第一种指定了struts2需要帮你转换成的json的Action中bean的属性:filename;也就是struts2只会调用getFileName()这一个get方法,忽略其他bean属性的的get*方法,自然节省了不少资源。 第二种没有指定需要转换成json的属性,只要Action中有get*方法的,strut2都会帮你转换,你节省的代码换来了程序不必要的开支。 但是

Kotlin (四) JSON解析(Klaxon 解析 data)

匿名 (未验证) 提交于 2019-12-03 00:22:01
kotlin 解析 json,直接调用 java的json库是没问题的,比如 Gson, fastjson。 但是比如 fatsjson 在解析 data 类时会报错:没有默认构造函数 //使用 compile 'com.alibaba:fastjson:1.1.68.android' 测试结果 com . alibaba . fastjson . JSONException : default constructor not found . class com . sungiven . merchant . data . httplayer . demo . A1 1、Kotson ,基于Gson 的kotlin包装 2、jackson-module-kotlin,基于jackson的包装 3、Klaxon ,纯kotlin方案 4、Jkid 本文介绍下Kotson, 主要是前期android开发 一直也使用 Gson 这个库,虽然后偷懒使用fastjson(因为对后端返回的String串容错性更强,对于fastjson的容错有写一篇: Gson 与 fastJson 在使用上的差异(fastJson的优点) ) 参考klaxon 的github 链接: https://github.com/cbeust/klaxon 支持data 类的解析,不需要写默认值 泛型解析上很方便

Fastjson致命缺陷

笑着哭i 提交于 2019-12-02 14:42:02
前言 这个周末被几个技术博主的同一篇公众号文章 fastjson又被发现漏洞,这次危害可导致服务瘫痪! 刷屏,离之前的漏洞事件没多久,FastJson 又出现严重 Bug。目前项目中不少使用了 FastJson 做对象与JSON数据的转换,又需要更新版本重新部署,可以说是费时费力。与此同时,也带给我新的思考,面对大量功能强大的开源库,我们不能盲目地引入到项目之中,众多开源框架中任一个不稳定因素就足以让一个项目遭受灭顶之灾。趁着周末,在家学习下同样具备对象JSON相互转换功能的优秀开源框架 Gson,并且打算将今后项目使用 FastJson 的地方逐渐换成使用 Gson,记录下学习总结的内容,希望对小伙伴也有所帮助。 本文所涉及所有代码片段均在下面仓库中,感兴趣的小伙伴欢迎参考学习: https : / / github . com / wrcj12138aaa / gson - actions 版本支持: - JDK 8 - gson 2.8 .5 - junit 5.5 .1 - Lomok 1.18 .8 Gson 简介 在正式介绍 Gson 之前,我们可以先从官方的wiki看下 Gson 的描述,了解它是什么? Gson is a Java library that can be used to convert Java Objects into their JSON

android 中JSON的理解与解析

别说谁变了你拦得住时间么 提交于 2019-12-01 21:44:36
JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便 5.JSON对数据的描述性比XML较差 6.JSON的速度要远远快于XML android2.3提供的json解析类 android的json解析部分都在包org.json下,主要有以下几个类: JSONObject :可以看作是一个json对象, 这是系统中有关 JSON 定义的基本单元,其包含一对儿 (Key/Value) 数值。它对外部 (External : 应用 toString() 方法输出的数值 ) 调用的响应体现为一个标准的字符串(例如: {"JSON": "Hello, World"} ,最外被大括号包裹,其中的 Key 和 Value 被冒号 ":" 分隔)。其对于内部 (Internal) 行为的操作格式略微,例如:初始化一个 JSONObject 实例,引用内部的