How to recognize array data using JavaScript?

1 week ago 5
ARTICLE AD BOX
JsonDocument doc; JsonArray pin = doc["pin"].to<JsonArray>(); switchVar1 = SHIFT(DATAPIN, CLOCKPIN); for (int n = 0; n <= 7; n++) { if (switchVar1 & (1 << n)) { // array[0-7] pin.add(1); Serial.print("1"); Serial.print("|"); //nclose } else { pin.add(0); Serial.print("0"); Serial.print("|"); //nopen } } String output; serializeJson(doc, output); //<-- Am I sending the data correctly? serializeJson(doc, Serial);

Output date in serial.

{ "pin": [0,0,0,0,0,0,0,0] }

I have pin array called pin, and I want to extract its elements and assign them to arrayOfstrings[i]. The data is received via a websocket. Below is an example of how to create a script that does this:

<meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PIN Display</title> <style> </style> </head> <body> <div class="container"> <h1>PIN monitor</h1> <div class="pin-display" id="pinDisplay"></div> <div class="status disconnected" id="status">close</div> </div> <script> // адрес WebSocket сервера const WS_URL = 'ws://' + window.location.host + '/ws'; let ws; const pinDisplay = document.getElementById('pinDisplay'); const statusEl = document.getElementById('status'); // динамически нарисуем 8 элементов для отображения PIN for (let i = 0; i < 8; i++) { const digit = document.createElement('div'); digit.className = 'pin-digit'; digit.textContent = '0'; digit.id = `pin-${i}`; pinDisplay.appendChild(digit); } function connectWebSocket() { ws = new WebSocket(WS_URL); ws.onopen = () => { console.log('WebSocket conect'); statusEl.textContent = 'conect'; statusEl.className = 'status connected'; }; ws.onmessage = (event) => { try { const data = JSON.parse(event.data); if (data.pin && Array.isArray(data.pin)) { updatePinDisplay(data.pin); } } catch (error) { console.error('error pasing JSON:', error); } }; ws.onerror = (error) => { console.error('WebSocket err:', error); statusEl.textContent = 'err conect'; statusEl.className = 'status disconnected'; }; ws.onclose = () => { console.log('WebSocket off'); statusEl.textContent = 'off'; statusEl.className = 'status disconnected'; // Переподключение через 3 секунды setTimeout(connectWebSocket, 3000); }; } function updatePinDisplay(pinArray) { pinArray.forEach((value, index) => { const digitEl = document.getElementById(`pin-${index}`); if (digitEl) { digitEl.textContent = value; // подсветим активные (если значение 1) if (value === 1) { digitEl.classList.add('active'); } else { digitEl.classList.remove('active'); } } }); } // Запускаем подключение connectWebSocket(); </script> </body> </html>
Read Entire Article