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