83 lines
2.7 KiB
Markdown
83 lines
2.7 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 строку в таблицу.
|
|
|
|
## Библиотека yaml
|
|
|
|
Библиотека содержит функции для сериализации и десериализации таблиц:
|
|
|
|
```python
|
|
yaml.tostring(object: table) -> str
|
|
```
|
|
|
|
Сериализует объект в YAML строку.
|
|
|
|
```python
|
|
yaml.parse(code: str) -> table
|
|
```
|
|
|
|
Парсит YAML строку в таблицу.
|
|
|
|
## Библиотека 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}/...` возможна потеря данных при перезаписи мира.
|