Files
VoxelEngine/doc/ru/scripting/filesystem.md
T

67 lines
2.4 KiB
Markdown

# Файловая система и сериализация
## Библиотека *file*
См. [библиотека file](builtins/libfile.md)
## Библиотека json
Библиотека содержит функции для сериализации и десериализации таблиц:
```python
json.tostring(object: table, human_readable: bool=false) -> str
```
Сериализует объект в JSON строку. При значении второго параметра **true** будет использовано многострочное форматирование, удобное для чтения человеком, а не компактное, использующееся по-умолчанию.
```python
json.parse(code: str) -> table
```
Парсит JSON строку в таблицу.
## Библиотека toml
Библиотека содержит функции для сериализации и десериализации таблиц:
```python
toml.tostring(object: table) -> str
```
Сериализует объект в TOML строку.
```python
toml.parse(code: str) -> table
```
Парсит TOML строку в таблицу.
## Библиотека bjson
Библиотека содержит функции для работы с двоичным форматом обмена данными [vcbjson](../../specs/binary_json_spec.md).
```lua
-- Кодирует таблицу в массив байт
bjson.tobytes(
-- кодируемая таблица
value: table,
-- сжатие
[опционально] compression: bool=true
) --> Bytearray
-- Декодирует массив байт в таблицу
bjson.frombytes(bytes: table | Bytearray) --> table
```
## Сохранение данных в мире
При сохранении данных пака в мире следует использовать функцию
```python
pack.data_file(id_пака: str, имя_файла: str) -> str
```
Функция возвращает путь к файлу данных по типу: `world:data/id_пака/имя_файла`
и создает недостающие директории в пути.
При использовании путей не соответствующим `data/{packid}/...` возможна потеря данных при перезаписи мира.