我正在开发一个由socrata托管的开放数据的应用程序,使用以下链接中的信息http://dev.socrata.com/consumers/examples/creating-an-application-with-asp-dotnet.html 您需要在代码中指定API端点。
private const string _APIEndPoint4x4 = “4tka-6guv”;
假设数据集中有5000条记录,它将列出应用程序中的所有数据。 但您可以通过登录socrata并保存来过滤此数据来更改终点。例如,我们可以过滤2015年的数据,这将给我们100条记录。当您下次运行应用程序时,它将只显示100条记录(我们不需要在代码中更改API端点)。 我在Socrata中经历了Soql查询方法,它说你可以用这样的条件设置api端点
https://soda.demo.socrata.com/resource/4tka-6guv?$where=magnitude > 3.0
我的问题是如何在我的应用程序中使用它? 我试过了
private const string _APIEndPoint4x4 = "4tka-6guv?$where=magnitude > 3.0”;
但它会出现以下错误
提供的resourceId不是有效的Socrata(4x4)资源标识符。
答案 0 :(得分:2)
您可能会发现查看PDF指南中提到的SODA.NET SDK自述文档中的文档非常有用: https://github.com/CityofSantaMonica/SODA.NET
要过滤数据,您可以使用以下代码:
var dataset = client.GetResource<MyClass>("4tka-6guv");
var soql = new SoqlQuery().Select("column1", "column2")
.Where("magnitude > 3.0");
var results = dataset.Query<MyOtherClass>(soql);
答案 1 :(得分:0)
该PDF中包含有关如何使用SoQL过滤器的一些详细信息和代码示例。尝试一下,让我知道这是否有帮助!
答案 2 :(得分:0)
作为其他答案的后续行动......
每个数据集都有一个与之关联的资源标识符,也称为 Socrata 4x4 。在您的示例中,资源标识符为 4tka-6guv
。它总是4个字母数字字符,短划线,然后是4个字母数字字符。因此名称 Socrata 4x4
错误消息:
提供的resourceId不是有效的Socrata(4x4)资源标识符。
表示您在代码中提供的resourceId格式不正确。这一行:
private const string _APIEndPoint4x4 = "4tka-6guv?$where=magnitude > 3.0”;
提供不仅仅是Socrata 4x4 - 你也有一个查询参数($where=magnitude > 3.0
)。
现在,在Socrata中获取对数据集的引用,la
var dataset = client.GetResource<MyClass>("4tka-6guv");
要求仅使用 Socrata 4x4 。
这不会下载所有行,而只是为您提供一个对象来执行其他查询。要实际获取一些数据,请构建一个SoqlQuery
对象,以便传递到之前获得的Query
引用上的dataset
方法。
Adrian Laurenzi (通过SODA.NET README)正在展示。