我对使用Microsoft从服务器返回oData有疑问。无法弄清楚。
Query1:
http://localhost:63717/odata/City(1)
Fiddler返回下面的原始数据。一切都在自己的括号里。
{
"odata.metadata":"http://localhost:63717/odata/$metadata#City/@Element","CityID":1,"CityName":"Minnetonka","CityAddr1":null,"CityAddr2":null,"CityCity":null,"CityState":null,"CityZip":null,"CityPhone":null,"CityFAX":null,"CityExtent":"-93.53,44.88,-93.39,44.93","CityHeaderImage":null
}
Query2:
http://localhost:63717/odata/City?$filter=CityName eq 'Minnetonka'
Fiddler返回下面的原始数据。数据包含在两组括号内的数据中。
{
"odata.metadata":"http://localhost:63717/odata/$metadata#City","value":[
{
"CityID":1,"CityName":"Minnetonka","CityAddr1":null,"CityAddr2":null,"CityCity":null,"CityState":null,"CityZip":null,"CityPhone":null,"CityFAX":null,"CityExtent":"-93.53,44.88,-93.39,44.93","CityHeaderImage":null
}
]
}
要在$filters请求中格式化返回到oData的JSON,我需要做什么?odata.metadata在Query2要杀了我。请解释我做错了什么。
发布于 2014-03-31 22:38:56
您没有做错什么,这两种格式实际上代表了两种不同的结果形式。
当您指定实体的键时,第一项是请求单个项。
在第二步中,您可能需要一个实体列表。在此响应中,Odata.Metadata是单独的,否则将对返回的每一项重复,在内容长度方面将是浪费。
发布于 2014-03-31 22:45:12
因为你对实体的寻址方式。
使用//localhost:63717/odata/City(1)您正在寻址一个实体(“/key/key”)。您将始终返回一个城市(如果一个存在)。它不需要返回一个数组,因为它不会返回一个以上的数组。
使用//localhost:63717/odata/City,您正在寻址一个实体集合("/entityset")。可以返回0到n个城市实体,因此需要一个集合。
https://stackoverflow.com/questions/22773473
复制相似问题