用于挖掘JSON对象的REST URL

时间:2015-04-12 21:40:57

标签: json rest

我正在编写一个移动客户端,它使用来自第三方服务器(我无法控制的服务器)的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"?

的元素

谢谢!

1 个答案:

答案 0 :(得分:1)

通过REST,您不会开始构建URL。这是服务器的责任,如果它不提供带URL(或URI模板)的超链接,那么我们不是在讨论REST。

尝试不同的响应格式,可能有HTML,ATOM,JSON-LD,HAL + JSON等......包含超链接的内容。

  

我认为这就像xpath一样,我可以深入到任何级别   想。

大多数REST服务不支持自定义查询。