找回密码
 加入
搜索
查看: 554|回复: 3

[网络通信] [已解决]json文件中,key的值含有.特殊符号该怎么处理呢

[复制链接]
发表于 2024-4-16 14:25:01 | 显示全部楼层 |阅读模式
本帖最后由 风过无痕 于 2024-4-17 19:39 编辑
$Json ='{"A":"1","B":"1","rar":{"a.zip":["a1.html","a2.html"],"b.rar":["b1.php","b2.php"]}}'

$object1 = Json_Decode($Json)

 $html = Json_Get($object1 ,'[rar]["a.zip"][0]') 

ConsoleWrite($html)
如果json中,KEY的值含有.这个特殊符号,比如上面KEY值是a.zip,按照上面的代码去处理,则取不到 a1.html,这种情况需要怎么处理呢?只能使用正则提取了吗?

但是Key中不含有.下面代码可以正常取到 a.html
$Json ='{"A":"1","B":"1","rar":{"azip":["a1.html","a2.html"],"b.rar":["b1.php","b2.php"]}}'

$object1 = Json_Decode($Json)

 $html = Json_Get($object1 ,'[rar][azip][0]') 

ConsoleWrite($html)

使用此文中的json库,https://www.autoitx.com/thread-71584-1-1.html


发表于 2024-4-17 14:02:17 | 显示全部楼层
先过滤它不行吗?
 楼主| 发表于 2024-4-17 15:29:23 | 显示全部楼层
本帖最后由 风过无痕 于 2024-4-17 20:00 编辑
绿色风 发表于 2024-4-17 14:02
先过滤它不行吗?

想着一步到位,找到方法了,用官方论坛的一个三方的jq库就可以了,有时间我发一下。含有特殊符号的用""括起来当成一个处理就行了。更多详细的用法自己研究下udf。
#include <Constants.au3>
#include "jq.au3"

Local $sOutput = "", $sJson   = ""

_jqInit()

$sJson ='{"A":"1","B":"1","rar":{"a.zip":["a1.html","a2.html"],"b.rar":["b1.php","b2.php"]}}'
$sOutput = _jqExec($sJson, '.rar."a.zip"[0]')
MsgBox($MB_ICONINFORMATION, "List of JSON values", $sOutput)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2024-7-10 19:22:37 | 显示全部楼层
'[rar][a.zip][0]'这样不行吗?或者自己在Json_Decode函数里把key里的点号替换成下划线
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 11:02 , Processed in 0.075015 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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