1

伙计们,使用 restify.js 在 Node.JS 中设计我的第一个 API。我的背景不是webapis,请原谅我的业余问题。无论如何,我想要 res.send(data); 响应符合http://jsonapi.org/format/以便我的移动应用程序可以开始使用 api 调用。目前,如果您要调用我的 api,它将以以下格式返回数据:

{"Count":1,"Items":[{"dbsource":{"S":"foo"},"id":{"S":"5002820"},"name":{"S":"fnameblah,lnameblah"},"expiration":{"S":"06/13/2015"},"type":{"S":"bar"}}]}

实际上,您在上面看到的只是 DynamoDB 查询调用的返回。

所以问题是......您是否使用可以将数据传递到的特殊库,它将格式化并以 JSON 格式返回数据。反过来,您可以通过 res.send(data) 将其返回给客户端,还是由我们来使“数据”JSON 兼容,然后返回?归根结底,我们都希望结果看起来像:

{
  "posts": [{
    "id": "1",
    "title": "Rails is Omakase",
    "links": {
      "author": "9",
      "comments": [ "5", "12", "17", "20" ]
    }
  }]
}

谢谢!

4

2 回答 2

4

在服务器端,字符串化 JSON 对象,

//...
res.statusCode = 200;
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(data)); //data is JSON object
res.end();

在客户端,相应地解析 JSON 字符串。

编辑:更正了响应内容类型。

于 2013-09-30T06:41:48.443 回答
-2

来自服务器的 JSON 数据应该是 JSON 字符串

您必须在客户端将其解析回 JSON 格式。

JSON.parse(string);  // return JSON object
于 2013-09-30T06:51:32.957 回答