我有两个json响应,完全像这样-
{
"redirectUrl": "http:\/\/lumoslocal.heymath.com"
},
{
"status": "SUCCESS"
}
我需要重定向到redirectUrl
的响应。类似于window.location.href = response.redirectUrl
。但这不起作用。可能是因为我的回应中有两个json。如何使用第一个json的“ redirectUrl”?
答案 0 :(得分:0)
如果您的两个响应位于数组中,则即使它们是无序的,也很简单:
var myJSON = [{"redirectUrl": "http:\/\/lumoslocal.heymath.com"}, {"status": "SUCCESS"}];
window.location.href = myJSON.find(e => e.redirectURL).redirectURL;
答案 1 :(得分:0)
根据OP的评论,我的理解是响应以如下字符串返回:authResp = '{"redirectUrl":"http:\/\/lumoslocal.heymath.com"}, {"status":"SUCCESS"}'
从技术上讲,这JSON
无效,因为其中很大一部分,您会得到一个错误(请在下面进行测试)
JSON.parse('{"redirectUrl":"http:\/\/lumoslocal.heymath.com"}, {"status":"SUCCESS"}')
要成功解析数据(并最终获得redirectUrl
数据),请按照以下步骤操作:
","
分隔字符串JSON
元素” 这是每个步骤的代码:
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;