Hot从AppEngine端点返回纯数组对象?

时间:2013-10-07 20:46:54

标签: javascript google-app-engine angularjs google-cloud-endpoints angular-resource

我正在为AppEngine中的RESTFul后端执行AppEngine端点。我在客户端使用AngujarJS,使用ngResource管理服务器数据。

我的问题:我无法从AppEngine端点返回纯数组。我试过这个:

@ApiMethod(
        name = "mpscorerapi.getAllResults",
        path = "/tournament/{tournamentId}/result/"
        httpMethod = HttpMethod.GET
)
public List<SimpleResult> getAllResults(@Named("tournamentId") Long tournamentId) throws NotFoundException
{
   ...
}

虽然这会将数据从服务器下载到客户端,但它不会构建一个“SimpleResult”对象数组,而是构建一个包含SimpleResult数组的对象,称为“items”:

  {
 "items": [
  {
   "id": "5733953138851840",
   "h": 0,
   "r": 0,
   "kind": "mpscorer#mpscorerapiItem"
  },
  {
   "id": "5733953138851841",
   "h": 1,
   "r": 2,
   "kind": "mpscorer#mpscorerapiItem"
  }
 ],
 "kind": "mpscorer#mpscorerapi",
 "etag": "\"SALE0WnK41Jo38zV0ILO62-rVOI/Mh2G6GGztZv-wj_56Kjf1o1XBaM\""
}

这使得ngResource相当无用,因为“query”方法需要一个纯数组作为回复:

$scope.resultsSrv = Result.query({tournamentID:tournamentId}) //fails!!!!

关于如何获得“SimpleResult”数组的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

我遇到了类似的挑战。我最终使用jQuery来解析它。使用地图非常直接。

我的案子是:

$.map(locs.items, function (loc) {
                      return {
                          value: loc.longName
                      };