Тема: AHK: Обработка переменной в формате JSON и перевод в массив
Здравствуйте, столкнулся с такой проблемой, не знаю как правильно перевести переменную в формате JSON в массив. То есть все должно выглядеть как-то так.
Пусть json будет переменной содержащей в себе JSON текст, а data пустой массив.
json:= "{hello:'world',its:{over:9000},foo:['bar','lol']}"
Мне нужно как-то этот ответ перевести в массив, чтобы он выглядел примерно вот-так.
data[hello] = world
data[its][over] = 9000
data[foo][0] = bar
data[foo][1] = lol
Так же, может кому пригодиться, нашел один из примеров обработки json ответа.
jsonAHK(s){
static o:=comobjcreate("scriptcontrol")
o.language:="jscript"
return o.eval("(" s ")")
}
jsonBuild(j) {
for x,y in j
s.=((a:=(j.setcapacity(0)=(j.maxindex()-j.minindex()+1)))?"":x ":")(isobject(y)?jsonBuild(y):y/y||y==0?y:"'" y "'") ","
;s.=x ":" (isobject(y)?jsonBuild(y):y/y||y==0?y:"'" y "'") ","
return (a?"[" rtrim(s,",") "]":"{" rtrim(s,",") "}")
;return ("{" rtrim(s,",") "}")
}
jsonGet(s,k){
static o:=comobjcreate("scriptcontrol")
o.language:="jscript"
return o.eval("(" s ")." k)
}
string := "{hello:'world',its:{over:9000},foo:['bar']}"
msgbox,% jsonGet(string,"hello")
msgbox,% jsonGet(string,"its.over")
msgbox,% jsonGet(string,"foo[0]")
ExitApp