У меня возникла проблема с отображением текста ответа JSON: У меня есть следующий ответ:
{
"status": false,
"msg": "Achtung: Zeile 2 enthält ungültige Zeichen!",
"csv_data": []
}
И теперь я хочу записать текст «msg» в консоль для тестовых целей. Вот что я пробовал:
[...], success: function (file, response) {
// this response works and logs the above JSON
console.dir(response);
// the following return "undefined"
console.info(response.msg);
В чем проблема? не могу найти неисправность... Спасибо за помощь! :)
@CertainPerformance да, я также чувствую, что ответ приходит в виде строки ... @Philipp попробуйте десериализовать с помощью JSON.parse (ответ), а затем проверьте
@CertainPerformance На самом деле я думал в том же духе, что это не то, что ожидалось, но я предположил, что это может быть массив - [{ "status": false, "msg": "Achtung: Zeile 2 enthält ungültige Zeichen!", "csv_data": [] }]
Спасибо всем за быстрые ответы! К сожалению, пока ничего не помогает... @CertainPerformance typeof возвращает "string"
@Rajiv, если я делаю json.parse, typeof говорит, что это объект var test = JSON.parse(response); console.info(typeof test);
@Philipp, если typeof возвращает строку, тогда синтаксический анализ должен работать ... опубликуйте свою фактическую строку ответа
Я разобрал его в json и все заработало. Спасибо, ребята, и хорошего дня! :) var test = JSON.parse(response); console.info(test.txt);



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Может быть, потому что он стрингифицирован. Пытаться:
JSON.parse(response).msg
Если это не сработает, попробуйте:
response.data.msg
Ответ имеет тип string. вы должны разобрать его как json:
let response = '{"status": false, "msg": "Achtung: Zeile 2 enthält ungültige Zeichen!", "csv_data": []}'
let json_response = JSON.parse(response);
console.info(json_response.msg);Проанализируйте ответ, если это не объект, иначе ничего не делайте
response = typeof response === 'object'? response: JSON.parse(response)try {
response = JSON.parse(response)
} catch(err) {
//do nothing
}Завершая ответ, следуя указаниям AZ_,
const finalResponse = typeof response === 'object'? response: JSON.parse(response);
console.info(finalResponse.msg);
Попробуйте
typeof response, держу пари, это не объект, вам, вероятно, нужно сначала его десериализовать