AHK для анализа JSON данных - PullRequest
       165

AHK для анализа JSON данных

0 голосов
/ 07 августа 2020

Мои данные JSON будут аналогичны тем, что указаны в приведенном ниже фрагменте.

{"members":[{"name":"Ben","occupation":"Police","age":"30"},{"name":"Tony","occupation":"Singer","age":"23"},{"name":"Lucy","occupation":"Artist","age":"27"},{"name":"Mark","occupation":"Lawyer","age":"40"},{"name":"Amy","occupation":"Doctor","age":"41"}]}

У меня есть требование получить имя человека , чья профессия Police из файла JSON.

Код, который я написал

#Include JSON.ahk

jsonStr={"members":[{"name":"Ben","occupation":"Police","age":"30"},{"name":"Tony","occupation":"Singer","age":"23"},{"name":"Lucy","occupation":"Artist","age":"27"},{"name":"Mark","occupation":"Lawyer","age":"40"},{"name":"Amy","occupation":"Doctor","age":"41"}]}

MyData := JSON.Load(jsonStr)

MsgBox, % MyData.members.1.name

Проблема с приведенным выше кодом заключается в том, что мне нужно жестко закодировать позицию словаря (MyData .members.1.name), чтобы получить результат.

Есть ли способ найти Police в списке участников и вернуть имя человека?

Кто-нибудь может помочь

1 Ответ

1 голос
/ 07 августа 2020

Вы можете использовать для l oop:

#Include JSON.ahk

jsonStr={"members":[{"name":"Ben","occupation":"Police","age":"30"},{"name":"Tony","occupation":"Singer","age":"23"},{"name":"Lucy","occupation":"Artist","age":"27"},{"name":"Mark","occupation":"Lawyer","age":"40"},{"name":"Amy","occupation":"Doctor","age":"41"}]}

MyData := JSON.Load(jsonStr)

for i, obj in MyData
{
    for k, v in obj
    if (v.occupation = "Police")
    {
        MsgBox % v.name
    }       
}
...