我正在编写一个移动客户端,它使用来自第三方服务器(我无法控制的服务器)的JSON数据。问题是当我点击以下网址时
curl http://server.com/zm/api/events.json
它会返回如下结构的大型事件列表:
"events": [
{
"Event": {
"Id": "280",
"MonitorId": "1",
"Name": "Familyroom-280",
"Cause": "Motion",
"StartTime": "2015-04-12 06:54:43",
"EndTime": "2015-04-12 06:55:27",
"Width": "1280",
"Height": "960",
"Length": "44.24",
"Frames": "74",
"AlarmFrames": "23",
"TotScore": "973",
"AvgScore": "42",
"MaxScore": "279",
"Archived": "0",
"Videoed": "0",
"Uploaded": "0",
"Emailed": "0",
"Messaged": "0",
"Executed": "0",
"Notes": "Motion: mudroom door, study door"
}
}, //and many more such "Event" events inside the array
我是JSON的新手,但是当我读到它时,它的规范说服务器必须提供一种机制来提取任何子对象。因此,例如,我想构建一个URL,以仅检索MonitorId为1
的事件我已经尝试了
curl http://server.com/zm/api/events/Event/MonitorId/1.json
curl http://server.com/zm/api/Event/MonitorId/1.json
curl http://server.com/zm/api/events.json?MonitorId="1"
curl http://server.com/zm/api/events.json?Event.MonitorId="1"
但我似乎无法做到正确。有人可以建议我需要构建的URL是什么,只返回MonitorId =" 1"?
的元素谢谢!
答案 0 :(得分:1)
通过REST,您不会开始构建URL。这是服务器的责任,如果它不提供带URL(或URI模板)的超链接,那么我们不是在讨论REST。
尝试不同的响应格式,可能有HTML,ATOM,JSON-LD,HAL + JSON等......包含超链接的内容。
我认为这就像xpath一样,我可以深入到任何级别 想。
大多数REST服务不支持自定义查询。