使用 javascript 从响应 api 转换错误文本,反应 js

Convert error text from response api using javascript, react js

我从服务器调用 api,我处理来自 api 的错误文本。

这是来自 api 的回复。

{
    response : {
        data: {
            "errorCode": "99",
            "errorType": "UNEXPECTED_ERROR",
            "developerMessage": "400 : [{\"errorCode\":\"91\",\"developerMessage\":\"{\\"errorCode\\":\\"10\\",\\"developerMessage\\":\\"Offer code not exits\\"}\"}]",
        }
    }
}

我想显示来自 developerMessage prop 的错误文本。像这样:developerMessage: "Offer code not exits".

我使用 lodash 得到了那个错误,但不是我想要的。

const errorMessage = _.get(error, ['response', 'data', 'developerMessage', 400]);

如何修复它才能使其正常工作?

非常感谢。

您需要使用 JSON.parse() 在对象层次结构的多级下方 parse 您的响应数据。

let responseData = {
    response: {
        data: {
            "errorCode": "99",
            "errorType": "UNEXPECTED_ERROR",
            "developerMessage": "400 : [{\"errorCode\":\"91\",\"developerMessage\":\"{\\"errorCode\\":\\"10\\",\\"developerMessage\\":\\"Offer code not exits\\"}\"}]"
        }
    }
};

const getErrorMsg = (inputData) => {
    const devMsg = inputData.response.data.developerMessage;
    const errorMsg = JSON.parse(devMsg.slice(devMsg.indexOf("[")));
    return JSON.parse(errorMsg[0].developerMessage).developerMessage;
}

console.log(getErrorMsg(responseData));