民间, 使用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" ]
}
}]
}
谢谢!
答案 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