Опции преобразования — хеш, в котором можно указать опции, рассмотренные ниже.
Опция
По умолчанию
Описание
$.depth(число)
19
Максимальная глубина вложенности
$.double(true|false)
true
Преобразовывать вещественные числа в объекты класса double. Если указано значение false, то числовые значения будут оставаться в виде строк
$.int(true|false)
true
Преобразовывать целые числа в объекты класса int. Если указано значение false, то числовые значения будут оставаться в виде строк. [3.4.4]
$.distinct[first|last|all]
не определен
Способ обработки дублирующих ключей:
first — будет оставлен первый встретившийся элемент
last — будет оставлен последний встретившийся элемент
all — в результат попадут все элементы, при этом элементы, начиная со второго, получат суффиксы _2, _3 и т. д.
по умолчанию — в случае обнаружения дублирующихся ключей будет выдано исключение (exception).
$.object[ссылка_на_метод]
не определен
Опция позволяет указать пользовательский метод с двумя параметрами, который будет вызываться для всех объектов. Возвращаемый методом объект (в том числе пользовательского типа) и будет помещаться в результирующую структуру.
$.array[array|hash|ссылка_на_метод]
$json:array, значение которого по умолчанию array, можно поменять на hash [3.5.0]
Опция позволяет указать пользовательский метод с двумя параметрами, который будет вызываться для всех массивов. Возвращаемый методом объект (в том числе пользовательского типа) и будет помещаться в результирующую структуру. При задании значения array создается массив, при задании значения hash создается хеш с цифровыми ключами, начинающимися с 0. [3.5.0]
$.taint[язык_преобразования]
не определен
Задает язык преобразования для всех строк в результирующем хеше. [3.4.2]
Если JSON пришел из внешнего источника, то при его разборе необходимо обозначить доверие данным, например через ^taint[clean;$form:json].