0

我正在为一个班级工作一个小型 Android 项目。在其中,我正在针对洛杉矶的一个开放 Socrata 数据集构建一个查询。

这是网址: https ://data.lacity.org/resource/yv23-pmwf.json?%24select=zip_code%2Cissue_date%2Caddress_start%2Caddress_end%2Cstreet_name%2Cstreet_suffix%2Cwork_description%2Cvaluation&%24where=issue_date%3E%3D%272015 -02-25T00%3A00%3A00%27%20AND%20zip_code%3D90291

这行得通。

但我无法弄清楚会“订购”结果的添加是什么。Socrata 文档是这样说的:

~~~~~~~~~~~~~~~~~~~~~~~~~~$order参数~~~~~~~~~~~~~~~~~~~~

$order 参数确定应如何对结果进行排序,使用指定列中的值,类似于 SQL ORDER BY。排序可以按升序或降序执行,默认为升序,但您也可以使用 DESC 反转顺序。

例如,按震级对地震进行降序排序:

https://soda.demo.socrata.com/resource/4tka-6guv ?$order=magnitude DESC

我们可以通过将 DESC 替换为 ASC 或简单地省略它来按升序对它们进行排序。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~

我尝试了 &$、$&、just &、just $ 的各种组合,以将“order=issue_date DESC”附加到 URL 的查询中。

一个普通的 '&' 会导致 "code" : "query.compiler.malformed", "error" : true, "message" : "Error, could not parse SoQL query ...." 和完整列表URL 的其余部分

'&$' 似乎稍微好一些。我只收到错误:“错误”:true,“消息”:“无法识别的参数 [$order=issue_date DESC]”

我还尝试在 issue_date 和 DESC 之间使用“+”,或者不包括“DESC”,但我只得到“无法识别的参数 [无论我输入什么]

Socrata 的技术作者请注意:您的示例都没有演示使用多个参数构建实际查询。有几个不会受伤。

此外,hurl-it 没用:我在那里构建了一个多参数查询,它可以执行我想要的操作(但在他们的示例集上),除了它将 $order 放在前面,$select 之前,并显示结果网址如下:

https://soda.demo.socrata.com/resource/4tka-6guv ?$order=magnitude

DESC&$select=位置,幅度

所以我不知道 $order 的 DESC 方向是如何附加到该子句的。玩了一阵子,还是没搞明白。

有谁熟悉这个 SoQL 吗?

我找到了 Socrata 的 Android API 库,但我对 Android 和 Socrata 仍然很陌生,我想我会推迟一段时间。只需要这个查询。也许我应该在过去的两个小时里试图弄清楚这一点,而不是这个。

谢谢。

4

1 回答 1

0

我不确定您为什么对 $order 子句有疑问。如果我接受您的查询(为便于阅读而解码),我只需将 order 子句附加为 &$order=issue_date DESC。所以这里是对我来说很好的完整查询:

https://data.lacity.org/resource/yv23-pmwf.json?$select=zip_code,issue_date,address_start,address_end,street_name,street_suffix,work_description,valuation&$where=issue_date>='2015-02-25T00:00:00' AND zip_code=90291&$order=issue_date DESC

也许您的 URL 编码不正确?另一件需要注意的是,您可以将 $order 子句作为标准 URL 参数附加到查询字符串中的任何位置。

于 2015-03-09T17:03:39.723 回答