I am including the exact data format that is returned
Code: Select all
o =
(
[
{
"domain": "ftrertre"
},
{
"domain": "rer"
},
{
"domain": "hkjhkh"
},
{
"domain": "bmgm"
},
{
"domain": "wsfg"
},
{
"domain": "iuyhrtr"
},
{
"domain": "uytnjtf"
}
]
)
obj := JsonToAHK(o)
MsgBox, % obj.length() ; this works to get number of domains
ExitApp
JsonToAHK(json, rec := false) {
static doc := ComObjCreate("htmlfile")
, __ := doc.write("<meta http-equiv=""X-UA-Compatible"" content=""IE=9"">")
, JS := doc.parentWindow
if !rec
obj := JsonToAHK(JS.eval("(" . json . ")"), true)
else if !IsObject(json)
obj := json
else if json.toString() != "[object Object]" {
obj := []
Loop % json.length
obj.Push( JsonToAHK(json[A_Index - 1], true) )
}
else {
obj := {}
keys := JS.Object.keys(json)
Loop % keys.length {
k := keys[A_Index - 1]
obj[k] := JsonToAHK(json[k], true)
}
}
Return obj
}