Исходный код JSON.Encoder протокол
Протокол для пользовательского кодирования данных структур в формате JSON.
Если у вас есть структура, вы можете вывести реализацию этого протокола, указав, какие поля должны быть закодированы в JSON:
@derive {JSON.Encoder, only: [....]}
defstruct ...
Также можно закодировать все поля или пропустить некоторые поля с помощью опции :except.
@derive JSON.Encoder defstruct ...
Утечка конфиденциальной информации
Подход :except следует использовать с осторожностью, чтобы случайно не раскрыть конфиденциальную информацию при добавлении новых полей.
Наконец, если вы не владеете структурой, которую хотите закодировать в JSON, вы можете использовать Protocol.derive/3 вне любого модуля:
Protocol.derive(JSON.Encoder, NameOfTheStruct, only: [...]) Protocol.derive(JSON.Encoder, NameOfTheStruct)
Краткое описание
Типы
- t()
Все типы, реализующие этот протокол.
Функции
- encode(термин, кодировщик)
Функция, вызываемая для кодирования данного термина в
iodata/0.
Типы
t()Исходный код
@type t() :: term()
Все типы, реализующие этот протокол.
Функции
encode(термин, кодировщик)Исходный код
Функция, вызываемая для кодирования данного термина в iodata/0.
© 2012-2024 The Elixir Team
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.18.1/JSON.Encoder.html