+1 голос
С WEB сервера получаю данные в виде такой строки. Как её распарсить наиболее быстрым способом?
(2.7 тыс. баллов) 9 29 55

3 Ответы

+1 голос

ключ=значение&ключ2=значение2 никакого отношения к json не имеют
json - javascript object notation rfc8259

Пример json представления

{
  "key1":"str1",
  "key2":int2,
  "key3":[1,2,3],
  "key4":["a","b"],
  "key5":[
    {
      "key":"val"
    },
    {
      "a":"v",
      "b":true
    }
  ]
}

(87 баллов) 1 8
Это всего лишь представление, которое удобно скармливать JS скрипту. В базе данных, например, запись JSON данных может быть на связанных списках или ещё как. Вопрос-то не в этом, а в том, как распарсить строку.
Ещё раз повторяю, строка "ключ=значение&ключ2=значение2" не является представлением json, и парсер json разбором таких строк не занимается.
Если хотите построить из этой строки объект json, то самым простым способом будет поиск разделителей '&', между которыми будут строки "ключ=значение" в которых также выполнить поиск разделителя '=', выделить таким образом ключ/значение и установить их объекту json.
А про парсер JSON я и не просил ничего.
0 голосов
Это POST или GET запрос HTTP сервера.

Обработка GET запроса отличается от обработки POST запроса.

У вас что за запрос POST?  GET?

Заменяйте & на терминатор строки 0х00 , а потом выполняйте сравнение строк .

Или напишите функцию помска переменной в принятой строке .
(93 баллов) 1 2 4
Да без разницы. Просто прилетает такая строчка. Её надо разложить по ячейкам массива.
0 голосов

Используйте Arduino JSON6. смотрите примеры там все есть.

(32 баллов) 4 11
У меня не arduino
Ну так с этого и нужно начинать)) Может скажете что у вас? Есть возможность помочь, но не известно в какой последовательности) Если есть возможность примените RegExp
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. Un_ka

    8 балл(ов)

  2. Eriak

    4 балл(ов)

  3. AlexGorr

    2 балл(ов)

...