# Структура

Библиотека Axiom позволяет легко сериализировать и десериализировать java объекты.

Подробности для разработчиков доступны [здесь](/ru/usage.md).\
\
Пример конфигурации Axiom:

{% code lineNumbers="true" %}

```json
# Комментарии пишутся начиная с символа "#"
# Их количество неограничено
# Однако вы не можете добавлять комментарии в файл, если они не предусмотрены автором,
# так как это техническое ограничение Axiom.
# Так же комментарий может быть написан только НАД каким либо значением
#
# Этот комментарий относится к значению stringValue, из-за технических ограничений
# То есть один комментарий не может идти сразу за другим
# В данном случае это всё считается одним комментарием, так как между ними нет пустой строчки
#
#
#
# Пример строкового значения
# Строка может начинатся и заканчиватся с любого количество пробелов.
# Axiom автоматически определяет тип данных, однако строки пишутся исключительно в "кавычках"
stringValue: " Любая строка  "

# Пример булевого значения. Только true или false!
booleanValue: true

# Пример записи числового значение. Любое число
numberValue: -40.97205719

# Пример записи массива. Из этого примера видно, что они записываются в {} 
someArrayExample: {
   # Содержимое массива
   # Важно! Массив может содержать разные типы данных, если это предусмотрено автором конфигурации
   
   # Пример кастомного объекта. Из этого примера видно, что кастомные объекты записываются в []
   [
      # Строковое значение кастомного объекта
      customObjectFirstString: " Первая строка"
      
      # Булевое значение кастомного объекта.
      someBoolean: true
      
      # Числовое значение кастомного объекта
      # Важно! Автор может ограничить тип доступных чисел
      someNumber: 3.14
   ]
}

# Пример строкового массива
# Элементы массива пишутся через запятую
# Последний элемент массива не должен заканчиватся запятой
stringArrayExample: {
   "Строка 1",
   "Строка 2",
   "И так далее"
}

# Пример массива кастомных объектов
# Как и в случае с строковым массивом элементы пишутся через запятую
# Последний элемент массива так же не должен заканчиватся запятой
customObjectsArrayExample: {
     [
        hello: "Да, привет!"
        goodWeather: false
     ],
     [
        hello: "Ещё раз привет!"
        goodWeather: true
     ]
}

# Пример записи мапы (Map)
# Мапа представляет собой структуру ключ-значение
#
# Ключём является строковое значение без пробелов между символами, которое так же
# не должно начинатся или заканчиватся пробелами
#
# Значением является любой объект
# Так же значением может являтся ещё одна мапа (Map) и так до бесконечности
mapExample: [
   # fist - ключ
   # в {} записано содержимое (в данном случае) массива строк
   first: {
     "Просто строка",
     "Просто ещё одна строка"
   }
   
   # TwoExample - ключ
   # в [] записано содержимое (в данном случае) массив кастомных объектов
   TwoExample: [
      [
         hello: "И снова, привет!"
         goodWeather: true
      ],
      [
         hello: "Да сколько можно!"
         goodWeather: false
      ]
   ]
]

# Пример записи объекта вне массива и т.д.
thatsObject: [
   name: "Пример"
   isEnabled: true
]
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://axiom.arial.su/ru/structure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
