开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 19832|回复: 51
收起左侧

[易源码分享] 【GitHub分享】一款非常优秀的JSON解析引擎,《Jsoncpp》黑猫易语言移植版。

[复制链接]
结帖率:82% (9/11)
发表于 2017-4-15 21:29:40 | 显示全部楼层 |阅读模式   广东省深圳市
分享源码
界面截图: -
是否带模块: -
备注说明: -
         JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,和xml类似,它基于ECMAScript规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率


      《JSONCPP》是一个跨平台的开源库《https://github.com/open-source-parsers/jsoncpp》,用于C++处理JSON格式数据的开发包,

下面讲一下如何使用这个库对JSON格式数据进行反序列化。

例如:
       {"key1": 100,"key2":true,"array":[{"key3":"1111"},{"key4":3.14}]}
代码:
  
子程序名返回值类型公开备 注
_临时子程序  
变量名类 型静态数组备 注
json文本型 
readerJsonReader解析引擎
rootJsonValue根对象
key1文本型 
key2逻辑型 
key3文本型 
key4双精度小数型 
json = #常量1
' {"key1": 100,"key2":true,"array":[{"key3":"1111"},{"key4":3.14}]}
如果真 (reader.从文本解析 (json, root))
key1 = root.At (“key1”).asString ()
key2 = root.At (“key2”).asBool ()
key3 = root.At (“array”).Index (0).At (“key3”).asString ()
key4 = root.At (“array”).Index (1).At (“key4”).asDouble ()
调试输出 (key1, key2, key3, key4)


i支持库列表   支持库注释   
spec特殊功能支持库

例如:      //对于多层结构,以及数组的解析      {"root":{"child":{"title":"Hello World"}},"array":[{"key":"1111"},{"key":"2222"}]}
代码:
  
子程序名返回值类型公开备 注
_临时子程序  
变量名类 型静态数组备 注
json文本型 
readerJsonReader解析引擎
rootJsonValue根对象
title文本型 
arrayJsonValue 
i整数型 
key文本型 
json = #常量2
' {"root":{"child":{"title":"Hello World"}},"array":[{"key":"1111"},{"key":"2222"}]}
如果真 (reader.从文本解析 (json, root))
' 多层直接解析
title = root.At (“root”).At (“child”).At (“title”).asString ()
调试输出 (title)
' 数组解析
array = root.At (“array”)
调试输出 (“数组成员数:”, array.Length ())
计次循环首 (array.Length (), i)
key = array.Index (i - 1).At (“key”).asString ()
' 数组下标从0开始
调试输出 (i, key)
计次循环尾 ()


i支持库列表   支持库注释   
spec特殊功能支持库

例如:      //解析复杂JSON       json.txt (17.47 KB, 下载次数: 26)

评分

参与人数 8好评 +6 精币 +17 收起 理由
l1over + 1 + 1 支持开源~!感谢分享
efeiyang + 1 + 2 感谢分享,很给力!~
龍鼎软件开发 + 2 支持开源~!感谢分享
循环不计次 + 1 + 1 奉上小小红包希望笑纳
hjjadg + 1 感谢分享,很给力!~
银河世纪 + 1 + 2 此处应该有鼓励~
小白熊 + 1 + 5 这个不错
leiyh + 1 + 3 感谢分享,很给力!~

查看全部评分


本帖被以下淘专辑推荐:

结帖率:0% (0/1)

签到天数: 1 天

发表于 2020-3-14 13:47:42 | 显示全部楼层   河南省郑州市
2个程序,一样的代码, root.Add (“data”, shuzu) root.toStyledString ()   调试输出一个为NULL,一个是JSON文本,这BUG可真....
回复 支持 反对

使用道具 举报

发表于 2020-3-6 17:59:50 | 显示全部楼层   江苏省苏州市
本帖最后由 NewLemon 于 2020-3-6 18:02 编辑

对于不规正json解析不了 [{123,23123,123,123,123,123,123,132,},{1,1,1,1},{123,123}],这样的xx完全解析不了。另外精易模块JSON可以解析,速度相当慢。web客户支持库可以解析,但是获取不到xx。其他JSON都测试全部取货不到
回复 支持 反对

使用道具 举报

结帖率:30% (3/10)
发表于 2019-5-26 20:23:03 | 显示全部楼层   湖北省潜江市
猫老大才是王者
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 1 天

发表于 2019-3-6 17:19:03 | 显示全部楼层   江西省南昌市
搞来看看,现在正在玩Json。
回复 支持 反对

使用道具 举报

发表于 2018-9-24 22:52:17 | 显示全部楼层   菲律宾
6666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:33% (1/3)

签到天数: 1 天

发表于 2018-4-9 20:14:50 | 显示全部楼层   广西壮族自治区南宁市
        感谢分享,很给力!~支持开源~
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 18 天

发表于 2018-3-24 19:39:45 | 显示全部楼层   浙江省台州市
我们这边一直在用这个数据格式的文件。
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2017-12-13 22:02:40 | 显示全部楼层   河南省郑州市
#在这里快速回复#抱歉,下载本附件需要           精币1枚 ,您帐号现有精币0枚  [ 精易论坛 首页 ]
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 23 天

发表于 2017-11-29 10:01:52 | 显示全部楼层   福建省福州市
removeIndex 这个函数 多次使用 会出现删除不了的问题
回复 支持 反对

使用道具 举报

结帖率:85% (22/26)

签到天数: 1 天

发表于 2017-8-21 09:46:23 | 显示全部楼层   福建省三明市
亲测100*56的解析填入列表框,速度远低于类_json
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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