Цитата:
Ключи Name* и дБм* это какая-то фигня. Такое можно оформить массивом такого вида { list: [ {name: '', dbm: ''}, {name: '', dbm: ''}, {name: '', dbm: ''}, ] } |
Да именно поместить в select , в ключах "Name0-NameN" хранятся названия сетей которые нашел контроллер в ключах "дБм0" хранится их мощность сигнала, "Nomber":"3" количество найденных сетей.
Цитата:
|
Цитата:
|
Про массивы я понимаю но как мне массив передать на страничку с ESP8266 не понимаю , или обработать JSON строку в массив ? Но я как раз и не могу обработать ее в JS.
|
Цитата:
<select id='tmp1'></select> <select id='tmp2'></select> <script> // Твой вариант данных const str1 = '{"Nomber":"3","Name0":"ptihka","дБм0":"-69дБм","Name1":"ptihka","дБм1":"-50дБм","Name2":"DOM_YHOME","дБм2":"-71дБм"}' const obj = JSON.parse(str1) for (let i = 0; i < +obj.Nomber; i++) { const o = document.createElement('option') o.value = obj['дБм' + i] o.textContent = obj['Name' + i] tmp1.insertAdjacentElement('beforeend', o) } // Мой вариант данных const str2 = '[{"Name":"ptihka","дБм":"-69дБм"},{"Name":"ptihka","дБм":"-50дБм"},{"Name":"DOM_YHOME","дБм":"-71дБм"}]' const arr = JSON.parse(str2) arr.forEach(obj => { const o = document.createElement('option') o.value = obj['дБм'] o.textContent = obj.Name tmp2.insertAdjacentElement('beforeend', o) }) </script> Цитата:
|
ksa огромное спасибо , но это чуть не то что я спрашиваю , нет это мне тоже надо , но основная проблемма в том как получить данные в "str2" с ответа ESP8266 Вы просто создали констовую переменную и парсите ее , а мне ее нужно взять(вытащить) из "POST" ответа из контроллера ESP8266 эти данные
|
Цитата:
Что ты показал - с тем я и выполнил преобразование. |
Вложений: 2
Мне как раз нужно принять данные. Опишу последовательность действий: посылаю POST запрос на контроллер , контроллер формирует JSON строку и вместе с ответом отправляет ее на страницу такого вида
(200, "text/json", Json), это и передается та строка которую я указал выше , вот ее я не знаю как обработать на страничке , как ее вытащить из ответа который отправил контроллер. |
Блин а почему так портится качество картинок
https://ibb.co/vhvNjPp https://ibb.co/hdV4v6d так лучше будет |
ptihka, покажите код, который используете для отправки запроса на контроллер.
Обрабатывать ответ на запрос нужно там же, где вы его отправляете, а не пытаться его каким-нибудь хитрым образом перехватить и обработать. По хорошему, как и написали выше, вам стоит изменить формат ответа вашего контроллера, текущий формат - форменный ужас. UPD. по идее что-то типа такого должно получится с текущим форматом ответа контроллера (на базе кода ksa): <select id="tmp1"></select> <script> fetch('/Scan_network', {method: 'post'}) .then(res => res.json()) .then(obj => { for (let i = 0; i < +obj.Nomber; i++) { const o = document.createElement('option'); o.value = obj['дБм' + i]; o.textContent = obj['Name' + i]; tmp1.insertAdjacentElement('beforeend', o); } }); </script> |
Часовой пояс GMT +3, время: 02:36. |