2013-09-30 7 views
1

Люди, Проектирование моего первого API в Node.JS с использованием restify.js. Мой фон не webapis, простите мои любительские вопросы. В любом случае, я хотел бы иметь res.send (данные); ответы для соответствия http://jsonapi.org/format/, чтобы мое мобильное приложение могло начать использовать вызовы api. На данный момент, если бы вы назвать мою апи, было бы возвращать данные в следующем формате:Формат результата JSON 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" ] 
    } 
    }] 
} 

Спасибо!

ответ

4

В стороне сервера, stringify объект JSON,

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

В стороне клиента, разобрать JSON строку соответствующим образом.

EDIT: Исправленный тип содержимого ответа.

+0

Спасибо, поэтому ... прямо сейчас я вижу данные как одну строку. Это нормально? Он не отформатирован так же хорошо, как примеры на jsonapi.org/format. Вот как выглядит мой вывод: http://pastebin.com/RM3qJLih – Cmag

+0

Формат? Вы хотите отменить отладку? Попробуйте 'JSON.stringify (data, null, 2);' – ngsiolei

-2

JSON данные с сервера должна быть строка JSON

Вы должны разобрать его обратно формат JSON в клиенте.

JSON.parse(string); // return JSON object 
Смежные вопросы