Синтаксис
1. Основная структура
-
Содержание файла начинается и заканчивается объектом
{}
, заключенным в фигурные скобки. -
Объект состоит из пар ключ-значение.
-
Имя свойства и значение разделяются двоеточием(
:
) или знаком равенства(=
).
2. Комментарий
-
Комментарии начинаются с
//
или#
и пишутся на одной строке. -
Комментарии действуют до конца данн ой строки.
-
Для многострочных комментариев поддержку предоставляют отдельно - необходимо добавлять
//
или#
в начале каждой строки.
3. Объект
-
Объект заключен в фигурные скобки
{}
и включает пары ключ-значение. -
Между ключом и значением можно использовать символы
:
или=
. Можно смешивать оба символа. -
Каждое свойство разделяется запятой(
,
). -
Объекты можно вкладывать друг в друга.
Пример:
{
статус: "успех",
код = 200,
пользователь = { id: 123, имя: "Джон Доу" }
}
4. Массив
-
Массив окружен квадратными скобками
[]
, а элементы разделены запятыми(,
). -
Элементы массива могут быть объектами, строками, числами и другими типами данных.
-
В WSON массивы могут быть частью объекта, а в массиве можно вкладывать другие массивы или объекты.
Пример:
задачи: [
{ id_задачи: 1, название: "Завершите отчет о п роекте" },
{ id_задачи: 2, название: "Просмотрите отзыв команды" }
]
5. Пара ключ-значение
-
Имя свойства состоит из строки, после которого сразу без пробела идет значение, отделенное
:
или=
. -
Типы значений включают строки, числа, булевые значения, объекты и массивы.
-
Строки заключаются в двойные кавычки
"
. -
Числа используются без кавычек и могут быть в целочисленной или десятичной форме.
Пример:
имя: "John Doe"
возраст = 25
6. Типы данных (Data Types)
- Строка(String): текст, заключенный в двойные кавычки
"
.
"привет мир"
- Число(Number): целое или вещественное число.
42
3,14
- Булево значение(Boolean): принимает
true
илиfalse
.
is_active = true
- Объект(Object): пара ключ-значение, заключенная в фигурные скобки
{}
. - Массив(Array): список элементов, заключенный в квадратные скобки
[]
.
7. Объяснение примера
{
// Код состояния и информация о сообщении
status: "success",
code: 200,
message: "Данные успешно извлечены",
user = {
id = 123,
name: "John Doe",
email: "john@example.com",
age: 25 # возраст пользователя
},
tasks: [
{
task_id: 1,
title: "Завершить отчет по проекту",
status: "in-progress",
due_date: "2024-10-15"
},
{
task_id: 2,
title: "Рассмотреть отзыв команды",
status: "pending",
due_date: "2024-10-20"
}
]
}