LiveCode中带有mergJSON的方括号 - 我做错了什么?

时间:2013-05-17 10:50:02

标签: json web-services livecode

我正在连接的Web服务返回其JSON以响应查询,因此:

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

...我从Web服务中提取并存储在名为“My JSON”的字段中。

您会注意到在开头和结尾都有方括号,我认为它对JSON数组有效吗?我在LC中有以下脚本,目前只从我的数组中检索“firstname”并将其放入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

这很奇怪但是当我通过mergJSON WITH 运行Web服务JSON时,方括号tMyVar变量是空的,但如果我从开头和&中删除方括号结束变量将填充“firstname”的内容就好了。

有人可以建议我做错了吗?

谢谢,

史蒂夫

1 个答案:

答案 0 :(得分:0)

当它返回一个数组内的对象时,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