Возвращение JSON в Коа - PullRequest
       20

Возвращение JSON в Коа

0 голосов
/ 16 ноября 2018

Я получаю JSON методом POST в моем маршрутизаторе, который затем возвращаю пользователю.По какой-то причине возвращенный JSON будет иметь все числовые и логические значения, приведенные к строке.Я использую koa-bodyparser, если это актуально.

Есть ли способ избежать этого?

Код:

var js = ctx.request.body.json;
ctx.body = {
                status: 'success',
                json: js
};

Ввод JSON:

{
"json": {
       "numbers": 123
        }
}

Вывод JSON:

{
"json": {
       "numbers": "123"
        }
}

1 Ответ

0 голосов
/ 04 февраля 2019

Строгий режим уже активен по умолчанию (https://github.com/cojs/co-body#options), поэтому вам не нужно об этом беспокоиться. Этот код работает для меня:

  ctx.body = {
    status: 'success',
    json: ctx.request.body.json
  };

Я использовал Почтальон, чтобы отправить его на сервер koa, и получил ответ в Почтальоне:

  {
    "status": "success",
    "json": {
        "id": 1,
        "name": "Joe"
    }
  }

Как видите, «id» - это число. Поскольку вы не писали о своем клиенте, я предполагаю, что это может быть браузер? Если это так, попробуйте использовать функцию JSON.parse (), потому что вы можете получить строку из вашего пост-запроса. Смотрите этот пример:

JSON.parse("{\"json\":{\"id\":1}}");

Вы также можете попробовать Postman в качестве клиента и посмотреть, работает ли он (https://www.getpostman.com/).

...