2016-12-26 2 views
0

У меня есть NodeJS REST API. В этом API я должен вызвать другой сторонний API для получения некоторых данных. Это дает нам данные как JSON. Вот как я установил этот ответ данных на мой ответ URL-адреса REST.Как читать json-ответ от узла js-сервера?

request('http://dev.demo.com/api/v1/wow/getFreeviewLoginAndCallAPI/123', function (error, response, body) { 
if (!error && response.statusCode == 200) { 
    console.log(body); 
    res.json(body); 
} 

});

А потом я получаю ответ вроде этого.

"{\"Response\":{\"@attributes\":{\"Package\":\"MONTHLY\",\"Surname\":\"Taylor\",\"CSN\":\"104801\",\"Email\":\"[email protected]\",\"MiscInformation\":\"\",\"Message\":\"CUSTOMER_ACTIVE\"}},\"Submission\":{\"@attributes\":{\"SubmitterRef\":\"0778798654\",\"Submitter\":\"demoName\"}}}" 

Но когда я использую этот сторонний URL-адрес в своем браузере, я получаю чистый и приятный вывод JSON. Как и следующее.

(без \ символа)

Никаких других "\" символов и чистые. Что мне нужно сделать, так это мне нужно получить доступ к некоторым значениям этого ответа. В узле js. Мне нужно отправить ответ следующим образом.

res.json(body.Response);

Но это null. А также мне нужно передать все эти значения в переменные. Как я могу это сделать ?

+0

Это выглядит как струна. Вы пробовали разобрать его? http://stackoverflow.com/questions/45015/safely-turning-a-json-string-into-an-object –

ответ

1

Ответ вашей третьей части api как строка, вам, вероятно, нужно разобрать до отправки клиенту.

request('http://dev.demo.com/api/v1/wow/getFreeviewLoginAndCallAPI/123', function (error, response, body) { 
if (!error && response.statusCode == 200) {   
    res.json(JSON.parse(body)); 
}}); 

Вы не можете использовать body.Response напрямую, потому что его строка не возражает, во-первых, разобрать его, а затем отправить клиенту, как

var json = JSON.parse(body); 
res.json(json.Response); 
+0

Да, теперь он работает как JSON. Но я не могу так использовать. "Res.json (JSON.parse (body.Response));" –

+0

Это ошибка, которую я получаю -> SyntaxError: Неожиданный токен u –

+0

var json = JSON.parse (body); res.json (json .Response); – Sumeet

Смежные вопросы