ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3155|回复: 11

[求助] 关于json文本写入与提取总是出错

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-19 14:37 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
        各位大神好,最近在学些json处理,按照大神们写出的例子,都能够理解并能在vba中运行。但是我吧自己的数据替换大神们提供的数据后,总是出现未结束的字符串常量,导致不能提取想要的数据。
        下面是小弟我的数据,能不能提供一个简单的代码,只要msgbox能正确显示,我就能自己研究怎么取出,谢谢!
{"OM":{"orderId":"1234567890","customerPhone":"13800138000","Name":"张三丰","Address":北京长安街1号A","carrierName":"顺水物流",},"Invoice":"否","OI":[{"productId":"654321","productName":"teslamodel y" }]}




TA的精华主题

TA的得分主题

发表于 2018-8-19 14:48 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 duquancai 于 2018-8-19 14:49 编辑

导致不能提取想要的数据。不知道你想要什么数据啊?你没说要提取具体哪个数据啊?也不知道你的json字符串来自哪里啊?

TA的精华主题

TA的得分主题

发表于 2018-8-19 18:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub test1()
     k = "{'status':200,'error':'成功','data':{'examInfo':{'id':'a5c6e45ea4dcabf63acb7836760a9ef1','settings':{'isShowAvgTip':'false','isOpenPush':'true','isMatric':'false'"
     k = k & ",'isShowScoreRadar':'false','isRemoteSearch':'false'},'name':'XX市2017-2018学年第二学期高二期末水平测试'},'scores':[{'infoDetail':[{'name':'主观题','value':'72'},"
     k = k & "{'name':'客观题','value':'25'}],'courseTotalScore':'150','totalScore':'97','totalScoreNum':'97','courseCode':'YW','courseName':'语文'},"
     k = k & "{'infoDetail':[{'name':'主观题','value':'28'},{'name':'客观题','value':'45'}],'courseTotalScore':'150','totalScore':'73','totalScoreNum':'73','courseCode':'LSX','courseName':'理科数学'},"
     k = k & "{'infoDetail':[{'name':'听说','value':'9'},{'name':'笔试','value':'89'}],'courseTotalScore':'150','totalScore':'98','totalScoreNum':'98','courseCode':'YY','courseName':'英语(含听说)'},"
     k = k & "{'infoDetail':[{'name':'客观题','value':'20'},{'name':'主观题','value':'21'}],'courseTotalScore':'100','totalScore':'41','totalScoreNum':'41','courseCode':'WL','courseName':'物理'},"
     k = k & "{'infoDetail':[{'name':'主观题','value':'16'},{'name':'客观题','value':'26'}],'courseTotalScore':'100','totalScore':'42','totalScoreNum':'42','courseCode':'HX','courseName':'化学'},"
     k = k & "{'infoDetail':[{'name':'客观题','value':'27'},{'name':'主观题','value':'38'}],'courseTotalScore':'100','totalScore':'65','totalScoreNum':'65','courseCode':'SW','courseName':'生物'}]"
     k = k & ",'userInfo':{'stName':'XXX','school':'XX市XX中学','examNo':'08190XXXX'}}}"

        strJOSN = k9
        Set oDom = CreateObject("htmlfile")
        Set oWindow = oDom.parentWindow
        oWindow.execScript "a=" & strJOSN

        MsgBox oWindow.eval("a.error")
        MsgBox oWindow.eval("a.data.examInfo.id")
        MsgBox oWindow.eval("a.data.scores[0].totalScoreNum")
        MsgBox oWindow.eval("a.data.scores[0].infoDetail[1].value")
End Sub
给你参考

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-19 20:34 来自手机 | 显示全部楼层
duquancai 发表于 2018-8-19 14:48
导致不能提取想要的数据。不知道你想要什么数据啊?你没说要提取具体哪个数据啊?也不知道你的json字符串来 ...

提取每一个key的值啊,例如我要提取adress后面的地址

TA的精华主题

TA的得分主题

发表于 2018-8-19 20:35 来自手机 | 显示全部楼层
triplefish 发表于 2018-8-19 20:34
提取每一个key的值啊,例如我要提取adress后面的地址

楼上不是已经给你代码了吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-19 21:05 来自手机 | 显示全部楼层
mxf21cn 发表于 2018-8-19 18:21
Sub test1()
     k = "{'status':200,'error':'成功','data':{'examInfo':{'id':'a5c6e45ea4dcabf63acb78 ...

回去了试一下,感谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-20 13:41 | 显示全部楼层
mxf21cn 发表于 2018-8-19 18:21
Sub test1()
     k = "{'status':200,'error':'成功','data':{'examInfo':{'id':'a5c6e45ea4dcabf63acb78 ...

运行到oWindow.execScript "a=" & strJOSN这一行报错,是哪里不对吗 之前还从未遇到过这种错误

1.png
2.png

TA的精华主题

TA的得分主题

发表于 2018-8-20 17:36 | 显示全部楼层
triplefish 发表于 2018-8-20 13:41
运行到oWindow.execScript "a=" & strJOSN这一行报错,是哪里不对吗 之前还从未遇到过这种错误

无附件,不知道字符串“变量”strJOSN的具体值。很难得到满意的答复!

TA的精华主题

TA的得分主题

发表于 2018-8-20 18:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
triplefish 发表于 2018-8-20 13:41
运行到oWindow.execScript "a=" & strJOSN这一行报错,是哪里不对吗 之前还从未遇到过这种错误

你的字符串不是标准JSON  格式改为  "{'OM':{'orderId':'1234567890','customerPhone':'13800138000','Name':'张三丰','Address':'北京长安街1号A','carrierName':'顺水物流'},'Invoice':'否','OI':[{'productId':'654321','productName':'teslamodel y' }]}"就可以了,具体哪里有差别 ,我都改完了   就看你的眼力了

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-22 22:34 | 显示全部楼层
mxf21cn 发表于 2018-8-20 18:12
你的字符串不是标准JSON  格式改为  "{'OM':{'orderId':'1234567890','customerPhone':'13800138000','Na ...

大神你好,我用你提供的例子,运行到那一步还是同样的错误,是不是引用有问题啊
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 16:16 , Processed in 0.025439 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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