最优雅的Json模块 易语言源码

[复制链接]
发表于 2023-9-10 00:30:01
面向对象

类中的两个关键方法都返回Json类型对象。

Json.I() '通过数组下标获取成员,并返回Json类型的对象(即返回与调用相同类型的对象)。

Json.K() '通过键名获取成员并返回Json类型的对象

             意味着一行代码可以进入无限级的子对象,比如这个json:

{data:[ obj:{ code: 8 , data:[ msg:{ error: -8 ,errorData:{ text: '密码错误' , date:1451577600}} ] } ]}

              只需要下面的代码就可以得到错误原因

错误原因 = Json.K(\\\"data\\\").I(0).K(\\\"data\\\").K(\\\"msg\\\").K(\\\"errorData\\\").K(\\\"文本\\\").获取文本()

              当然,新版本也保留了传统的表达式方法获取对象,虽然不再推荐使用(表达式方法没有IDE提示,需要自己检查语法错误),但具体用法如下:

错误原因 = Json.X(\\\"data[0].data.msg.errorData.text\\\").Get text()

高效的

放弃了上一个版本的自研内核(虽然上一个版本的容错能力很惊人,但是执行效率低下,短期内没有精力去改进)而补充了Win32API中的JScript引擎内联汇编实现类似于Java的对象引用机制。 ,即 Json.I() / Json.K() / Json.X() 返回的对象实际上是调用对象绑定的同一个 Jscript 对象,因此解析和搜索相比之前可以得到很大的提升版本速度。

稳定

依靠对象引用机制,无论哪个子对象发生变化,都可以稳定同步更新。而且,该版本集成了JSONP跨域格式的解析功能,这样你再也不用担心这样的数据格式了。\\\"_callback1451577600({code: -10086,msg:'密码错误!'})\\\"。

其他注意事项

复制变量不能使用下面的方法直接复制(因为对象引用机制有引用计数,直接复制会导致计数异常并提前释放内存,从而导致程序崩溃)。

错误方法演示:

Json2=Json1

正确方法:

Json2=Json1.copy()

20330412467[下载].rar



上一篇:自动生成迷宫并寻路(无模块) 易语言源码
下一篇:百度AI人工智能模块易语言源码

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

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