Невозможно распечатать данные из запроса API

Я пытаюсь научиться работать с вызовами и ответами API, и мне нужно было базовое значение, которое исходит из ответа api, но мне не удалось заставить его работать. Итак, вот моя проблема;

(function worker() {
$.get('URL', function(data) {
   $('#numbers').html(data); });
})();

Я использую этот код, он отлично работает и записывает ответ API на мою HTML-страницу. Также вызовы API возвращают значение в этом формате;

{
"success":"true",
"field1": {"number1":"number1_val","number2":"number2_val"},
"field2": {"number11":"number11_val","number22":"number22_val"}
}

Теперь я попытался записать значения из ответа API, и мне удалось записать такое значение «успеха»;

$('#success_val').html(data.success);

Он напечатал значение true на моем HTML-сайте в данном поле #success_val. Однако когда я попытался записать field1 или первое значение field1, мне это не удалось. Я пытался

$('#numbers').html(data.field1); => No success, empty page
$('nu#mbers').html(data.field1[0]); => No success, empty page

Итак, на данный момент мне нужно сохранить и использовать значение "number11" из поля 2. Я читал и искал более часа и обнаружил, что этот возврат api не является действительным возвращением "массива", вместо этого он называется "полем" (я могу ошибаться), но я не смог найти никакой информации о том, как я могу получить данные "number11" из этого ответа api.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
360
2

Ответы 2

$('#numbers').html(data.field1); => No success, empty page

data.field1 точно существует? или проверка орфографии.

Вы можете получить ключи по Object.keys(data).

Если данные существуют, он возвращает ["success", "filed2", "field2"]. Таким же образом вы уже знаете ключ, например number11, Возвращаемое значение data.field2.number11 или data["field2"]["number11"]. Если вы не знаете ключ, возвращается значение data["filed2"][Object.keys(data)[0]].

Как ни странно, когда я пытаюсь предупредить «data.field1», он предупреждает данные из field1, такие как «number1: number1_val», «number2: number2_val». Но не могу распечатать их на веб-странице

Osman Kuzucu 20.09.2018 08:38

Я пробовал object.keys (data), и он возвращает три параметра success,field1,field2. Также, если я попытаюсь запустить object.keys как (data.field2), он вернет number11,number22

Osman Kuzucu 20.09.2018 08:46

Благодаря https://stackoverflow.com/users/10366589/sh-k я решил проблему данным способом;

Поскольку мне не удалось распечатать вывод field2 в HTML, я проверил ключи в field2 с помощью этого кода;

alert(Object.keys(data.field2));

и он вернулся

number11,number22

поскольку мне нужен был только номер 11 из этого ответа API, я сделал следующее;

var.storednumber = Object.keys(data.field2);
var.storednumber = storednumber[0];
$('#numbers').html(storednumber);

и я смог без проблем напечатать желаемый номер на экране :)

Могло быть лучшее решение или исправление проблемы, с которой я столкнулся, но на данный момент это решено. Я предполагаю, что проблема заключается в типе ответа API, поскольку он не возвращает данные в формате массива.

Другие вопросы по теме