I have call api from server, and I handle error text from api.
Here is response from api.
{
response : {
data: {
"errorCode": "99",
"errorType": "UNEXPECTED_ERROR",
"developerMessage": "400 : [{\"errorCode\":\"91\",\"developerMessage\":\"{\\\"errorCode\\\":\\\"10\\\",\\\"developerMessage\\\":\\\"Offer code not exits\\\"}\"}]",
}
}
}
I want to show error text from developerMessage
prop. Like so: developerMessage: "Offer code not exits"
.
I used lodash to get that error, but not what I wanted.
const errorMessage = _.get(error, ['response', 'data', 'developerMessage', 400]);
How do I fix it to make it work?
Thank you so much.
You need to parse
your response data using JSON.parse()
at multi-level down the object hierarchy.
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));