Link Search Menu Expand Document

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

Тип-одиночка
Стд::Json::СериализацияJson
Базовые типы: Объект

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

graph BT;
Сериализация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}]}

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

Объект