0
Under review

Конвертировать массив в JSON

evg 6 years ago updated by Vladimir Ovchinnikov (expert) 6 years ago 1

Добрый день!

Получаю в ответ от оборудования вот такую текстовую строку. Блоки разделены переносами строки

[06-09-2018 14:02:44.034] INFO SCRIPT COMMAND:GET

ALL_STATION_INFO

ID:rc

CHANNEL:1

NAME:Mid Tempo

URL:http://air.radiorecord.ru:805/mt_320

CHANNEL:2

NAME:Antenne Bayern

URL:http://www.antenne.de/webradio/antenne.aac.pls

CHANNEL:3

и т.д.


Удаляю переносы и конвертирую эту строку в массив

[06-09-2018 14:02:44.055] INFO SCRIPT Элемент[0] = [COMMAND:GET]

[06-09-2018 14:02:44.066] INFO SCRIPT Элемент[1] = [ALL_STATION_INFO]

[06-09-2018 14:02:44.078] INFO SCRIPT Элемент[2] = [ID:rc]

[06-09-2018 14:02:44.091] INFO SCRIPT Элемент[3] = [CHANNEL:1]

[06-09-2018 14:02:44.104] INFO SCRIPT Элемент[4] = [NAME:Mid Tempo]

[06-09-2018 14:02:44.116] INFO SCRIPT Элемент[5] = [URL:http://air.radiorecord.ru:805/mt_320]

[06-09-2018 14:02:44.128] INFO SCRIPT Элемент[6] = [CHANNEL:2]

[06-09-2018 14:02:44.142] INFO SCRIPT Элемент[7] = [NAME:Antenne Bayern]


Для удобства работы хочу преобразовать данный массив в JSON с 2 уровнями вложенности

{"COMMAND"="GET","ALL_STATION_INFO"=0"ID"="rc","CHANNEL 1"={"NAME"="Mid Tempo","URL"="http://air.radiorecord.ru:805/mt_320","CHANNEL 2"={"NAME"="Antenne Bayern", .....


Посоветуйте, как лучше это сделать

Under review

Добрый день.

Можно сохранять элементы массива в переменные, а потом делать сериализацию. Примерно так:


var e1 = "value1";
var e2 = "value2";

var object = {command1:e2, command2:e2};
var string = JSON.Stringify(object);
IR.Log(string); // {"command1":"value2", "command2":"value2"}