Доступ к элементу моего ответа JSON в JavaScript - PullRequest
0 голосов
/ 01 марта 2019

У меня есть ответ с двумя jsons, в точности так:

{
  "redirectUrl": "http:\/\/lumoslocal.heymath.com"
}, 
{
  "status": "SUCCESS"
}

Мне нужно перенаправить при получении ответа на redirectUrl.Что-то вроде window.location.href = response.redirectUrl.Но это не работает.Возможно, из-за двух JSON в моем ответе.Как мне использовать 'redirectUrl' моего первого json?

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Насколько я понимаю (из комментариев ОП), ответ возвращается в виде строки, подобной этой: authResp = '{"redirectUrl":"http:\/\/lumoslocal.heymath.com"}, {"status":"SUCCESS"}'

Технически это недопустимо JSON как один большой кусок, вы получитеошибка (проверьте ее ниже)

JSON.parse('{"redirectUrl":"http:\/\/lumoslocal.heymath.com"}, {"status":"SUCCESS"}')

Чтобы успешно проанализировать данные (и в конечном итоге получить данные redirectUrl), выполните следующие действия:

  1. разделите строку запятой"," символ
  2. синтаксический анализ «первого JSON элемента»
  3. перенаправления на извлеченный redirectUrl

Вот код для каждого шага:

authResp = '{"redirectUrl":"http:\/\/lumoslocal.heymath.com"}, {"status":"SUCCESS"}';
    
// 1. split the string with a comma character:
let authArr = authResp.split(',');
    
// 2. parse the first JSON element:
let redirectObj = JSON.parse(authArr[0]);

// 3. redirect to extracted redirectUrl
window.location.href = redirectObj.redirectUrl;

Или, если вы хотите разобрать всю строку в массив JSON объектов, вы можете сделать это:

authResp = '{"redirectUrl":"http:\/\/lumoslocal.heymath.com"}, {"status":"SUCCESS"}';

// create array of json strings, then parse each into separate array elements
authArr = authResp.split(',').map(e => JSON.parse(e));

// Finally, follow @JackBashford's code:
window.location.href = authArr.find(e => e.redirectUrl).redirectUrl;
0 голосов
/ 01 марта 2019

Если ваши два ответа находятся в массиве, это просто, даже если они неупорядочены:

var myJSON = [{"redirectUrl": "http:\/\/lumoslocal.heymath.com"}, {"status": "SUCCESS"}];
window.location.href = myJSON.find(e => e.redirectURL).redirectURL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...