乐易论坛-乐易网易语言培训教程火山PC视窗中文编程交流论坛

 找回密码
 立即注册

手机号登录

用手机号号登陆

微信登录

微信扫码,快速开始

QQ登录

用QQ账号登陆

办理VIP,定制软件,报名培训联系QQ[重磅]2024年实地培训高清培训目录火山PC版乐易模块使用教程
请牢记揰掵佲的QQ号1615457736 1615457734 其他都是骗子有了火山,易语言是否还有必要学习吗?易语言0基础入门课程
火山PC视窗0基础入门课程易语言外挂0基础入门课程火山PC视窗火山HOOK入门课程
易语言误报处理课程QQ空间POST课程2022年火山PC易语言POST系列课程
Android逆向Jeb动态调试0基础课程QQ邮箱网页POST课程WeChat个微Hook实战课程
百日Js加密分析实战课程(无密下载)QQ群POST课程h5游戏WebSocket逆向视频
JavaScript加密特训课程易语言汇编快速入门课程破解实战系列课程
[2024年]火山PC0基础x64位游戏内存辅助开发教程手游模拟器脚本0基础课程易语言加密防破解0基础入门课程
广告位招租联系QQ1615457736  
查看: 13636|回复: 3

[模块开源] JimStone(谢栋) - JSON模块:STJson2.2(开源+示例) - 纯算法

[复制链接]

[模块开源] JimStone(谢栋) - JSON模块:STJson2.2(开源+示例) - 纯算法

[复制链接]
已绑定手机
已实名认证
揰掵佲
等级头衔

等級:乐易运营组

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分成就
易币
贡献
主题
精华
金钱
积分
33893
注册时间
2014-8-2
最后登录
1970-1-1

勋章墙

2017-6-11 00:44:29 | 显示全部楼层 |阅读模式

据统计90%查看本帖的人,都已经注册本站了哦

您需要 登录 才可以下载或查看,没有账号?立即注册

×
JimStone(谢栋) - JsON模块:STJson2.2(开源+示例) - 纯算法
2.2 加入二次寻址机制
  • 当存在 路径 和 句柄 参数时,如果 句柄 大于 0,而且路径也存在时,则基于 句柄 执行二次寻址

下载: JimStone(谢栋) - JSON模块:STJson2.2.rar (123.53 KB, 下载次数: 50) 下载次数:188


例如:
json内容:
[url=]复制代码[/url]
  • {
  • "a": [
  •   {
  •    "b": 101
  •   },
  •   {
  •    "b": 102
  •   },
  •   {
  •    "b": 103
  •   }
  • ]
  • }

代码:
[url=]复制代码[/url]
  • .版本 2
  • .局部变量 句柄, 整数型
  • .局部变量 快速JSON, 快速JSON解析类
  • 快速JSON.解析 (json内容)
  • 句柄 = 快速JSON.取数组句柄 (“a”, , 2)
  • 输出调试文本 (快速JSON.取文本 (“b”, 句柄))


输出文本:
[url=]复制代码[/url]
  • * 102


2.1 修复了逻辑型和NULL类型取值和取文本出错的问题
  • 修复了上个版本取逻辑和null文本出错和取值内容不正确的问题(忘记标记数据位置了,惭愧)


2.0版本特性
  • 加入了全新的快速解析对象,解析效率提高了5到10倍。
  • 全新的解析算法全面兼容JSON标准。完全支持科学计数法、Unicode、JSON标准转义符、单行多行注释、多字节文本。
  • 读取支持路径式访问并且效率非常高。例如:a.b、a[1].b、[1].b、['我'].b。需要注意的是,数组访问索引是从1开始的。
  • 快速解析对象加入中文命名代理类。
  • 修复上个版本双精度小数的问题。
  • 原来的对象解析部分挂接了新的解析对象,效率更高,兼容性更好。
已经通过大量的测试,修复了上个版本多种特殊情况下可能解析失败的问题。
   





   

快速解析对象使用方法

类:快速JSON解析类 / STFastJson


取句柄() / get_handle(): 返回 节点句柄。失败返回 0。通过路径获取节点的原始句柄信息。

引用
使用句柄获取数据的效率比通过路径获取数据效率更高。句柄 实际指向数据信息存储的位置。根节点句柄必然为 1。


----------------------------------------------------------------------------
大部分参数都包含 路径(path) 句柄(handle) 两个参数。
如果句柄大于0则基于句柄执行路径查询。
路径访问类似JS中的访问方式:

数组访问:
  • 数组使用“[数组索引]”的方式访问,索引值从1开始。例如:a[1].name、a.b[2].name
  • 根节点为数组则直接使用数组规则访问。例如:[1].name、[2].a.b、[3].a[1].b
对象访问:
  • 对象直接使用“.节点名称”下级节点名称访问。例如:a.b、book.cover.url
  • 根节点为对象则直接使用下级节点名称访问。例如:user.name、object.property
  • 如果对象主键名称不为数字、字母或下划线,则使用“['主键']”(支持单引号或双引号包裹名称)的方式访问。例如:user['信息'].address、bbs.article['id']、['用户'].['名称']、['用户']['名称']

----------------------------------------------------------------------------

解析() / parse() : 解析JSON文本。
  • 参数 [是否保留顺序]:指定是否保留对象原始节点顺序。如果保留原始顺序,则 取对象所有主键() 方法返回的主键将使用原始顺序。如果为 真 则解析效率会有细微的下降。如果对对象下级节点的顺序要求不高的情况下,建议设置本参数为 假。
  • 参数 [错误原因]:在解析失败时,会返回详细的错误原因,错误原因包含行号和错误所在行中的位置。
  • 参数 [是否Unicode转GBK] : 是否将Unicode“\u”符号转换为GBK。默认:真

取对象句柄() /  get_object_handle(): 通过对象主键返回对象的下级节点句柄。

取数组句柄() / get_array_handle():  通过数组索引返回数组的下级节点句柄。

取类型() / get_type() : 获取节点的类型。返回类型对应“#快速JSON类型_” / “#JFTYPE_” 开头的常量。注意此处的英文常量比构造和原JSON类中多了个 F,为 #JFTYPE_。

取数组成员数() / get_array_count() : 返回数组成员数量。非数组时返回0

取对象所有主键() / get_object_keys() : 获取对象所有下级属性节点的主键。返回主键数量,主键内容存到“主键数组”参数中

取文本() / get_string() : 返回节点文本内容。数组返回“[Array]”,对象返回“Object”,其它对象则返回原始文本内容

取整数() / get_long() : 返回节点内容为长整数。双精度小数/长整数/文本都将被自动转换,其它返回0

取小数() / get_double() : 返回节点内容为双精度小数。双精度小数/长整数/文本都将被自动转换,其它返回0

取逻辑值() / get_bool() : 返回节点内容为逻辑型。不存在或非逻辑型返回 假

是否为空() / is_null() : 判断是否为空。不存在的节点也返回 真,存在且非null型返回 假

是否存在() / exists() : 判断节点是否存在
回复

使用道具 举报

已绑定手机
wan942182718
等级头衔

等級:编程入门

Rank: 4

积分成就
易币
贡献
主题
精华
金钱
积分
496
注册时间
2016-5-7
最后登录
1970-1-1

勋章墙

2017-9-28 21:41:21 | 显示全部楼层
解析是能解析
回复

使用道具 举报

已绑定手机
wan942182718
等级头衔

等級:编程入门

Rank: 4

积分成就
易币
贡献
主题
精华
金钱
积分
496
注册时间
2016-5-7
最后登录
1970-1-1

勋章墙

2017-9-28 21:41:55 | 显示全部楼层
就是 不是顺序解析
回复

使用道具 举报

xiaokai 该用户已被删除
xiaokai
等级头衔

等級:

积分成就
易币
贡献
主题
精华
金钱
积分
注册时间
最后登录

勋章墙

2018-8-7 11:40:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

如果懒得打字,请选择右侧内容快捷回复 提醒:以任何方式进行『恶意灌水』的行为,进行封号处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

热点推荐上一条 /5 下一条

QQ|网站地图|手机版|小黑屋|乐易论坛-乐易网 | 湘ICP备19007035号

拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表乐易立场!

娄底市乐易网络科技有限公司声明:乐易原创培训课程版权均为我公司所有,未经许可,不得擅自翻录,盗版,破解本站课课程,我们将保留法律诉讼的权利

GMT+8, 2024-5-7 06:50 , Processed in 0.044225 second(s), 48 queries .

Powered by Discuz! X3.4

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表