235 читали · 2 года назад
Как сериализовать и десериализовать перечисления с использованием Jackson
1. Обзор В этом быстром руководстве мы узнаем, как управлять процессом сериализации и десериализации Java Enum с помощью Jackson 2. 2. Управление представлением перечислений Давайте определим следующее перечисление: public enum Distance { KILOMETER("km", 1000), MILE("miles", 1609.34), METER("meters", 1), INCH("inches", 0.0254), CENTIMETER("cm", 0.01), MILLIMETER("mm", 0.001); private String unit; private final double meters; private Distance(String unit, double meters) { this...
👣 В Rust нашли интересный способ ускорить pretty printer - штуку, которая красиво форматирует код, JSON, Lisp и другие структуры
Обычно есть два подхода. Первый - собрать всё дерево документа целиком. Так делают Wadler-style pretty printers. Это выразительно, но в Rust быстро упирается в память, аллокации и указатели. Второй - стримить вывод по кускам. Так работает Oppen-style подход. Он легче по памяти, но часто принимает локально хорошие решения и не всегда находит глобально лучший layout. Автор предлагает третий вариант: не хранить документ как рекурсивный enum, а описывать его через trait Doc. То есть Text, Concat,...
398 читали · 2 года назад
Работа с json в Python
JSON (JavaScript Object Notation) - это легкий формат обмена данными, который широко используется в веб-разработке. В Python есть встроенный модуль json, который позволяет работать с данными в формате JSON. В этой статье мы рассмотрим основы работы с модулем json в Python. Модуль json предоставляет методы для сериализации (преобразования объектов Python в формат JSON) и десериализации (преобразования данных JSON обратно в объекты Python). Пример 1: Сериализация объекта Python в JSON В этом примере мы создаем объект data, содержащий информацию о человеке...