JSON API结果格式

时间:2013-09-30 06:25:54

标签: json node.js api

民间,   使用restify.js在Node.JS中设计我的第一个API。我的背景不是webapis,请原谅我的业余问题。无论如何,我想拥有res.send(数据);响应符合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(数据)将它返回给客户端,还是由我们决定使'数据'JSON兼容,然后返回它?在一天结束时,我们都希望结果如下:

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

谢谢!

2 个答案:

答案 0 :(得分:4)

在服务器端,stringify JSON对象,

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

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

编辑:更正了回复内容类型。

答案 1 :(得分:-2)

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

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

JSON.parse(string);  // return JSON object