Перейти к основному содержимому

СериализацияJson

Стд::Json::СериализацияJson Тип-одиночка

Методы для чтения и записи объектов JSON целиком.

Сравнение ссылочное

Иерархия типа

Базовые типы: Объект, Одиночка


Методы

ЗаписатьОбъект

ЗаписатьОбъект(
Значение: Объект?,
Настройки: НастройкиЗаписиОбъектовJson
): Строка
Перегрузка:
ЗаписатьОбъект(Поток: ПотокЗаписи, Значение: Объект?, Настройки: НастройкиЗаписиОбъектовJson)

Записывает объект Значение в JSON с настройками Настройки и возвращает результат. Можно записывать объекты любого типа объявленного в коде (структура, перечисление) и некоторых встроенных типов:

Сопоставление типов происходит точно так же, как описано в методе ПрочитатьОбъект.

Примеры

структура СтруктураКлиенты
обз пер Клиенты: Множество<СтруктураКлиент>
;

структура СтруктураКлиент
обз пер Ид: Число
обз пер Имя: Строка
обз пер Отчество: Строка
обз пер Фамилия: Строка
;

метод ЗаписатьОбъектВСтрокуJson(): Строка
знч КлиентыОбъект = новый СтруктураКлиенты(новый Множество<СтруктураКлиент>())
КлиентыОбъект.Клиенты.Добавить(новый СтруктураКлиент(1, "Иван", "Иванович", "Иванов"))
КлиентыОбъект.Клиенты.Добавить(новый СтруктураКлиент(2, "Петр", "Петрович", "Петров"))

знч Результат = СериализацияJson.ЗаписатьОбъект(КлиентыОбъект)

возврат Результат
;

Результат:

{
"Клиенты" : [
{
"Ид" : 1,
"Имя" : "Иван",
"Отчество" : "Иванович",
"Фамилия" : "Иванов"
},
{
"Ид" : 2,
"Имя" : "Петр",
"Отчество" : "Петрович",
"Фамилия" : "Петров"
}
]
}

ЗаписатьОбъект

ЗаписатьОбъект(
Поток: ПотокЗаписи,
Значение: Объект?,
Настройки: НастройкиЗаписиОбъектовJson)
Перегрузка:
ЗаписатьОбъект(Значение: Объект?, Настройки: НастройкиЗаписиОбъектовJson): Строка

Записывает объект Значение в JSON с настройками Настройки в поток Поток. Можно записывать объекты любого типа объявленного в коде (структура, перечисление) и некоторых встроенных типов:

Сопоставление типов происходит точно так же, как описано в методе ПрочитатьОбъект.

Примеры

метод ЗаписатьОбъектВJsonЧерезПоток(): Строка
пер Объект = ["значение1", "значение2"]
исп Поток = новый ВременныйПотокЗаписи()
СериализацияJson.ЗаписатьОбъект(Поток, Объект)

возврат Поток.ОткрытьПотокЧтения().ПрочитатьКакСтроку()
;

Результат:

[
"значение1",
"значение2"
]

ПрочитатьМассив

ПрочитатьМассив(
Источник: ПотокЧтения|Строка,
Кодировка: Кодировка|Строка = Кодировка.Utf8
): Массив<Объект?>
Читает массив объектов из Источник. Вызывает метод ПрочитатьОбъект с параметром Тип = Тип<Массив<Объект?>>) и кодировкой Кодировка.

Примеры

Исходный JSON:

[
{
"Имя1": "Значение1"
},
{
"Имя2": "Значение2"
}
]
метод ПрочитатьМассивИзСтрокиJson(СтрокаJson: Строка): Строка
знч Результат = СериализацияJson.ПрочитатьМассив(СтрокаJson)

возврат Результат.ВСтроку()
;

Результат:

[{Имя1: Значение1}, {Имя2: Значение2}]

ПрочитатьОбъект

ПрочитатьОбъект(
Источник: ПотокЧтения|Строка,
Тип: Коллекция<Тип>,
Настройки: НастройкиЧтенияОбъектовJson,
Кодировка: Кодировка|Строка = Кодировка.Utf8
): Объект?
Перегрузка:
ПрочитатьОбъект<ТипОбъекта>(Источник: ПотокЧтения|Строка, Тип: Тип<ТипОбъекта>, Настройки: НастройкиЧтенияОбъектовJson, Кодировка: Кодировка|Строка = Кодировка.Utf8): ТипОбъекта

Считывает объект JSON из Источник в объект типа Тип с настройками Настройки и кодировкой Кодировка. Можно читать объекты любого типа, объявленного в коде (структура, перечисление), и некоторых встроенных типов:

Если значение типов объекта не указано, тогда чтение выполняется в Соответствие.

Сопоставление типов происходит точно так же, как описано в методе ПрочитатьОбъект.

Исключения

ИсключениеЧтенияJson - если при чтении произойдет неоднозначность чтения (неявное чтение). Например, при чтении значения "2000-01-01" в типы Дата, ДатаВремя нельзя однозначно определить какой тип должен быть прочитан.


ПрочитатьОбъект

ПрочитатьОбъект<ТипОбъекта>(
Источник: ПотокЧтения|Строка,
Тип: Тип<ТипОбъекта>,
Настройки: НастройкиЧтенияОбъектовJson,
Кодировка: Кодировка|Строка = Кодировка.Utf8
): ТипОбъекта
ТипОбъекта: Тип считываемого объекта.

Перегрузка:
ПрочитатьОбъект(Источник: ПотокЧтения|Строка, Тип: Коллекция<Тип>, Настройки: НастройкиЧтенияОбъектовJson, Кодировка: Кодировка|Строка = Кодировка.Utf8): Объект?

Считывает объект JSON из Источник в объект типа <ТипОбъекта> с настройками Настройки и кодировкой Кодировка. Можно читать объекты любого типа, объявленного в коде (структура, перечисление), и некоторых встроенных типов:

Если значение типа объекта не указано, тогда чтение выполняется в Соответствие.

Сопоставление полей и свойств происходит следующим образом:

Имя свойства в структуре сопоставляется с именем свойства в исходном JSON.

Если необходимого поля структуры нет в читаемом тексте JSON, тогда значение поле устанавливается в Неопределено.

Исключения

ИсключениеЧтенияJson - если при чтении произойдет неоднозначность чтения (неявное чтение). Например, при чтении значения "2000-01-01" в типы Дата, ДатаВремя нельзя однозначно определить какой тип должен быть прочитан.

Примеры

Исходный JSON:

[
{
"Ид": 1,
"Имя": "Иван",
"Отчество": "Иванович",
"Фамилия": "Иванов"
},
{
"Ид": 2,
"Имя": "Петр",
"Отчество": "Петрович",
"Фамилия": "Петров"
}
]
структура СтруктураКлиент
обз пер Ид: Число
обз пер Имя: Строка
обз пер Отчество: Строка
обз пер Фамилия: Строка
;

метод ПрочитатьОбъектИзСтрокиJson(СтрокаJson: Строка): Строка
знч Результат = СериализацияJson.ПрочитатьОбъект(СтрокаJson, Тип<Множество<СтруктураКлиент>>)

возврат Результат.ВСтроку()
;

Результат:

{ {Ид=1, Имя=Иван, Отчество=Иванович, Фамилия=Иванов}, {Ид=2, Имя=Петр, Отчество=Петрович, Фамилия=Петров} }

ПрочитатьСоответствие

ПрочитатьСоответствие(
Источник: ПотокЧтения|Строка,
Кодировка: Кодировка|Строка = Кодировка.Utf8
): Соответствие<Строка, Объект?>
Читает соответствие из Источник. Вызывает метод ПрочитатьОбъект с параметром Тип = Тип<Соответствие<Строка, Объект?>>) и кодировкой Кодировка.

Примеры

Исходный JSON:

{
"Имя": [
{
"Имя1": "Значение1"
},
{
"Имя2": "Значение2"
}
]
}
метод ПрочитатьСоответствиеИзСтрокиJson(СтрокаJson: Строка): Строка
знч Результат = СериализацияJson.ПрочитатьСоответствие(СтрокаJson)

возврат Результат.ВСтроку()
;

Результат:

{Имя: [{Имя1: Значение1}, {Имя2: Значение2}]}

Список унаследованных методов

Объект

ВСтроку, ПолучитьТип, Представление