开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3586|回复: 6
收起左侧

[已回应] 精易模块 3.43 json 操作类

[复制链接]
发表于 2013-8-5 13:21:06 | 显示全部楼层 |阅读模式   湖南省邵阳市
本帖最后由 jixun66 于 2013-8-5 13:36 编辑

方法: 置属性
  1. 对象.方法 (“Eval”, dataName + “.” + 名字 + “='” + 值 + “'”)
复制代码
参数 值 合成语句前并没有进行转义,应该由模块函数自行处理。

方法: 加成员
  1. 对象.方法 (“Eval”, “if(!” + 名字 + “.map)'){” + 名字 + “=[]} ” + 名字 + “.push(” + a + 成员值 + a + “)”)
复制代码
代码精简 + 速度优化

方法: 置成员、赋值
在 如果真 (为对象 = 假) 后应加上转义字符自动处理

方法: 置类型
  1. .如果真 (值 = 0)
  2.     对象.数值方法 (“Eval”, “var ” + dataName + “=null”)
  3.     返回 ()
复制代码
根据参数备注,值为 0 时应为空。
方法: 取类型
有个地方错了导致取出来的都是 null
  1. 如果真 (对象.逻辑方法 (“Eval”, <span style="line-height: 1.5;">名字 + “ !=null”) = 假)</span>
复制代码
应为
  1. 如果真 (对象.逻辑方法 (“Eval”, _名字 + “ !=null”) = 假)
复制代码
然后自己比较喜欢用 typeof (短些),所以自己改写了该函数:
[e].版本 2

.子程序 取类型_, 整数型, 公开, 空=0,数=2,对象=4,数组=5,文本=6
.参数 名字, 文本型, 可空
.局部变量 l, 文本型
.局部变量 _名字, 文本型

.如果 (名字 ≠ “”)
    _名字 = dataName + “.” + 名字
.否则
    _名字 = dataName
.如果结束
.如果真 (对象.逻辑方法 (“Eval”, _名字 + “==null”))
    返回 (0)
.如果真结束
l = 对象.文本方法 (“Eval”, “typeof (” + _名字 + “)”)
.判断开始 (l = “string”)
    返回 (6)
.判断 (l = “object”)
    .如果真 (对象.逻辑方法 (“Eval”, “!” + _名字 + “.map”))' 只有数组才有 map 这个方法
        返回 (4)
    .如果真结束
    返回 (5)
.判断 (l = “number”)
    返回 (2)
.默认
    返回 (-1)
.判断结束
[/e]


方法: 取所有属性名
会多出 2 个函数,parseJSON 和 toJSONString。
代码已压缩
  1. obj = 对象.文本方法 (“Eval”, “a=[];for(k in ” + _名字 + “){if(typeof a[k]!='function')a.push(k)}a.join()”)
复制代码
方法: 取成员文本
参数 索引 应该不支持 a.b.c 这样的吧。


方法: 取通用属性
改了改,改成一句话
  1. .子程序 取通用属性, 文本型, 公开, 返回文本.参数 名字, 文本型, , 支持a.b.c[0]或者[0].a.b
  2. 返回 (对象.文本方法 (“Eval”, 子文本替换 (“if(typeof A=='object'&&!A.map) JSON.stringify(A);else A.toString();”, “A”, dataName + 选择 (取文本左边 (删首尾空 (名字), 1) ≠ “[”, “.”, “”) + 名字, , , 真)))
复制代码
方法: 置属性对象
不需要在代码里面 eval, 直接赋值即可。
对象.方法 (“Eval”, dataName + “.” + 名字 + “=” + 值)

方法: _销毁
没有必要调用方法 消除(), 反正要关了。

方法: 解析
可以直接这样的,快捷。
  1. <span style="line-height: 1.5;">对象.数值方法 (“Eval”, “var ” + dataName + “=” + 数据文本)</span>
  2. 返回 (对象.逻辑方法 (“Eval”, “!!” + dataName))
复制代码
如有错误,还请指教,谢谢。
发表于 2013-12-24 09:05:12 | 显示全部楼层   广东省深圳市
好东西啊啊啊
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)
发表于 2013-10-22 18:57:39 | 显示全部楼层   上海市上海市
部分已经采纳完善
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2013-8-27 18:58:59 | 显示全部楼层   浙江省绍兴市
这理由, 各种的坑..  反正关闭了, 不用清除对象
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 13 天

发表于 2013-8-5 13:44:02 | 显示全部楼层   广东省广州市
我也来看高手的讨论
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)
发表于 2013-8-5 13:22:15 | 显示全部楼层   河北省衡水市
膜拜LZ来了
回复 支持 反对

使用道具 举报

结帖率:62% (26/42)
发表于 2013-8-5 13:22:08 | 显示全部楼层   广东省东莞市
菜鸟 完全看不懂
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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