0
Answered

JSON. Помогите обработать

evg 8 years ago in iRidium Script / AV and Driver scripts updated by Dmitry - support (expert) 8 years ago 2

Добрый день!

Помогите, пжст, уже всю голову сломал.

Устройство присылает мне данные в JSON, при этом, судя по тексту - это несколько объектов JSON. Например (это приходит в одном пакете):

{"notification":{"timestamp":"2016-04-22T14:24:22.590408","type":"PROGRESS_INFORMATION"}}

{"notification":{"timestamp":"2016-04-22T14:24:22.590475","type":"KEYBOARD"}}

{"notification":{"timestamp":"2016-04-22T14:24:22.590540","type":"TRACKPAD"}}

При этом между объектами я получаю переносы строки.

Как обработать эти данные с учетом того, что это не массив объектов, не единый JSON, идентификаторы не уникальные.


Полный пакет выглядит так (вырезал лишние данные, которые не влияют на суть):

HTTP/1.1 200 OK

Connection: Keep-Alive

Transfer-Encoding: chunked

Device-id: 8641

Content-Type: application/json

74b

{"notification":{"timestamp":"2016-04-22T14:29:01.597825","type":"PROGRESS_INFORMATION","kind":"playing","data":{"state":"play"}}}

{"notification":{"timestamp":"2016-04-22T14:29:01.597891","type":"KEYBOARD","kind":"device","data":"NONE"}}

{"notification":{"timestamp":"2016-04-22T14:29:01.597956","type":"TRACKPAD","kind":"device","data":"NONE"}}


Из этого пакета я вырезал текст от первой открывающей фигурной скобки до последней закрывающей.

Answer

Answer

Победил.

Методом .split разрезал на куски по "notification", затем обработал, как 3 отдельных JSON'а.

Answer

Победил.

Методом .split разрезал на куски по "notification", затем обработал, как 3 отдельных JSON'а.