:4.313KB : :1 :2019-11-18 09:12:53
本人一直找寻稳定的json解析,一理通百理用,E2EE就有这种功能,既方便又快速。
还犹豫什么,赶紧下载吧,再也不用担心json解析了
这是亲自测试写出来的,绝无第二份。
不喜勿喷,出门往左转,本源码只为小白做参考。
E2EE有解析教程,但是他讲的比较笼统,只讲一层怎么使用和枚举,例如: {"a":1,"b":2}一样,本人特地整理一下源码给大家提供个便捷,
把 static_lib 和 lib 剪切到 易语言根目录里,打开易语言,支持库,选择E2EE支持库选项重新打开源码。
' // json一般格式就是 {"a": "1","b": "2"} 或 {"msg": {"conten": [{"list": "1","pwd": "2"}],"tmp":1,"text":2},"user":1,"time":"6" }
' // 解析思路 ---->>>>{"msg": [{"vps_type": "free", "CPU": "1" ......}] , "sql": "select * from plist_vps where vps_type='free' and userid='221692' order by id desc" , "response":200}
' // 第一遍取出的就是 msg、sql、response,那么循环判断 主键的类型判断,再取值一级一级的循环
' //存取类型--->>>
' #存取类型_空, #存取类型_整数型, #存取类型_小数型, #存取类型_逻辑型, #存取类型_文本型, #存取类型_时间型,
' #存取类型_字节集, #存取类型_长整数型, #存取类型_存取列表, #存取类型_宽文本型, #存取类型_存取键值表, #存取类型_双精度小数型
键值表.从JSON载入 (编辑框_对象类型_列表.内容, , )
主键数组 = 键值表.取键数组 () ' 先取出 msg 、sql、response 主键 判断主键的类型 11为对象、12为数组
.计次循环首 (取数组成员数 (主键数组), i)
' // 判断第一层的数据是什么类型的,也许 有文本的、有数值的、通过 #存取类型_ 查看对应返回的类型
' 调试输出 (“1、【名字和类型】:”, 主键数组 [i], 键值表.取类型 (主键数组 [i]))
.如果真 (键值表.取类型 (主键数组 [i]) = #存取类型_存取键值表) ' // 等于 11 的话就 取键值表 键值了 说明是个对象
' // 取键值表,判断类型,取内容
键值表.取键值表 (主键数组 [i], 返回文本)
主键数组1 = 返回文本.取键数组 ()
.计次循环首 (取数组成员数 (主键数组1), n)
' 调试输出 (主键数组 [i], 主键数组1 [n], “类型 ---->>>> ”, 返回文本.取类型 (主键数组1 [n]))
' // 判断类型,根据对应的类型取值
.如果真 (返回文本.取类型 (主键数组1 [n]) = #存取类型_存取列表)
' // 既然是一个列表那就取列表
输出调试文本 (“--------------------------------------------------------------------------------------------” + #换行符)
返回文本.取列表 (主键数组1 [n], 列表)
输出调试文本 (主键数组 [i] + “.” + 主键数组1 [n] + “ 值 --->> ” + 列表.到JSON (假, , ), “ 成员数量 --->>> ” + 到文本 (列表.取数量 ()))
输出调试文本 (“--------------------------------------------------------------------------------------------” + #换行符)
' // 因为这个值也是个数组,也就是列表,那就列表取数量
.计次循环首 (列表.取数量 (), k)
输出调试文本 (“成员类型 --->>> ” + 到文本 (列表.取类型 (k, )))
输出调试文本 (“--------------------------------------------------------------------------------------------” + #换行符)
' // 类型返回 11 那就证明是一个对象
.如果真 (列表.取类型 (k, ) = #存取类型_存取键值表)
' // 既然它是 存取键值表 但是对象又是 列表,那么就取键值表
列表.取键值表 (“//[” + 到文本 (k) + “]”, 返回文本1)
主键数组2 = 返回文本1.取键数组 ()
.计次循环首 (取数组成员数 (主键数组2), l)
输出调试文本 (主键数组 [i] + “.” + 主键数组1 [n] + “ 的数据:” + 返回文本1.取文本 (主键数组2 [l]))
.计次循环尾 ()
.如果真结束
.计次循环尾 ()
输出调试文本 (“--------------------------------------------------------------------------------------------” + #换行符)
.如果真结束
.如果真 (返回文本.取类型 (主键数组1 [n]) = #存取类型_长整数型)
输出调试文本 (主键数组 [i] + “.” + 主键数组1 [n] + “ 值 --->> ” + 返回文本.取文本 (主键数组1 [n]) + “ 或 ” + 到文本 (返回文本.取长整数 (主键数组1 [n])))
输出调试文本 (“--------------------------------------------------------------------------------------------” + #换行符)
.如果真结束
.计次循环尾 ()
.如果真结束
.如果真 (键值表.取类型 (主键数组 [i]) = #存取类型_存取列表) ' // 等于 12 的话就取 列表 了 说明是个数组
键值表.取列表 (主键数组 [i], 列表)
输出调试文本 (列表.取数量 ())
输出调试文本 (“--------------------------------------------------------------------------------------------” + #换行符)
.如果真结束
.如果真 (键值表.取类型 (主键数组 [i]) = #存取类型_文本型) ' // 这是第一遍,第一层,判断的类型,也许有其他的类型呢比如整数型、长整数型等等,可以自行添加。
输出调试文本 (“1、 ” + 主键数组 [i] + “ 【文本型】 数据 ----->>>> 结果:” + 键值表.取文本 (主键数组 [i]))
输出调试文本 (“--------------------------------------------------------------------------------------------” + #换行符)
.如果真结束
.计次循环尾 ()
02-17会员管理插件源码
02-17轻量级的json解析器,基于V8引擎
02-16动态创建菜单与响应事件源码,菜单编辑器
02-16支持懒加载的类编写的json解析工具
02-09画板快捷启动3.2源码修改版
02-09王者荣耀战力小程序源码分享
02-09简单的指定颜色抠图源码
02-05WinLicense授权SDK源码
09-07C++的string的实现源码分析
10-15易语言word循环插入文字 图片工具源码