[已解决]json文件中,key的值含有.特殊符号该怎么处理呢
本帖最后由 风过无痕 于 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 ,'["a.zip"]')
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 ,'')
ConsoleWrite($html)
使用此文中的json库,https://www.autoitx.com/thread-71584-1-1.html
先过滤它不行吗? 本帖最后由 风过无痕 于 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"')
MsgBox($MB_ICONINFORMATION, "List of JSON values", $sOutput)
''这样不行吗?或者自己在Json_Decode函数里把key里的点号替换成下划线
页:
[1]