1

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

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

...我从 Web 服务中提取并存储在一个名为“我的 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

这很奇怪,但是当我通过带有方括号的 mergJSON 运行 Web 服务 JSON 时,tMyVar 变量是空的,但是如果我从开头和结尾删除方括号,则变量会填充“名字”的内容就好了。

谁能建议我做错了什么?

谢谢,

史蒂夫

4

1 回答 1

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
于 2013-05-18T05:20:35.600 回答