Квадратные скобки с mergJSON в LiveCode - что я делаю не так?

Веб-сервис, к которому я подключаюсь, возвращает свой JSON в ответ на запрос, таким образом:

[{
"dob":"25/12/68",
"firstname":"Mary",
"lastmoddate":1368519205101,
"lastname":"Smith",
"resident_id":"712d9b726603426ca36f9c77fa644ae9",
"createddate":1368519205101
}]

... который я извлекаю из веб-службы и храню в поле под названием "Мой JSON".

Как вы заметите, в начале и в конце есть квадратные скобки, которые, я считаю, действительны для массивов JSON? У меня есть следующий скрипт в LC, который на данный момент просто извлекает "имя" из моего массива и помещает его в tMyVar для отображения:

function JSONToArray pJSON
      local tArray,tKeys
      repeat for each line tKey in mergJSONDecode(pJSON,"tArray")
          put JSONToArray(tArray[tKey]) into tArray[tKey]
      end repeat
      return tArray
end JSONToArray

on mouseUp
    put field "My JSON" into pJSON
    put JSONToArray(pJSON) into tArray
    put tArray["firstname"] into tMyVar
    answer tMyVar
end mouseUp

Это странно, но когда я запускаю веб-сервис JSON через mergJSON WITH квадратные скобки, переменная tMyVar становится пустой, но если я удаляю квадратные скобки от начала и конца, переменная просто наполняется содержимым "firstname".

Кто-нибудь может подсказать, что я делаю не так, пожалуйста?

Спасибо,

Стив

1 ответ

Поскольку он возвращает объект внутри массива, JSONToArray создаст многомерный массив. Измените ваш обработчик mouseUp на:

on mouseUp
    put field "My JSON" into pJSON
    put JSONToArray(pJSON) into tArray
    put tArray[1]["firstname"] into tMyVar
    answer tMyVar
end mouseUp
Другие вопросы по тегам