Мельница данных  (12.12.2025)
Структура объекта JSON

Для передачи информации о запросе в виде объекта JSON, такой объект должен отвечать следующим требованиям:

  1. Объект JSON должен иметь поля:
    • class (обязательно): имя класса или представления, к которому должен быть выполнен запрос;
    • fetchall (необязательно, допустимые значения "0" или "1", по умолчанию "0"): поле, позволяющее управлять режимом получения возвращаемого ответа на запрос в случае наличия ограничений на размер возвращаемого ответа; использование этого поля подробнее описано в разделе Использование возвращаемого ответа.
    • items (необязательно): массив объектов, описывающих условия отбора, сортировки, группировки возвращаемых данных; каждый из этих объектов соответствует одной из частей (кляуз) sql-запроса: what, where, order by, group by и т.д.
  2. Объекты массива items могут иметь ряд полей, из которых обязательным является только поле part. Обязательность других полей может быть взаимно обусловлена их значениями. Поля объектов массива items:
    • part (обязательно): указывает на часть (кляузу) запроса, которой соответствует данный объект массива;
    • name: в простом случае (без использования поля special) - имя свойства класса (или поля представления), которое будет использовано в запросе; при использовании special может быть как именем свойства класса, так и другой строкой (подробнее: в разделах Допустимые значения part, Допустимые значения special); 
    • value - значение, которое, в зависимости от значений полей part и special, будет использовано для сравнений или для других целей; в простом случае (если part = "where", special отсутствует) будет использовано для сравнения в условии отбора при выполнении запроса (подробнее: в разделах Допустимые значения part, Допустимые значения special);
    • special - вводит дополнительные возможности формирования запроса (подробнее: в разделе Допустимые значения special); от использованного значения special может зависеть обязательность и трактовка значений других полей.
    • subQuery
    • joinKey
    • joinLink
    • joinSource 
    • context - массив объектов, который интерпретируется тем или иным образом в зависимости от значения поля special; например, если special имеет значение "function" (22), то этот массив будет интерпретироваться как набор параметров функции и их значений (подробнее: в разделе Допустимые значения special).

Пример
Пример объекта JSON стандартной структуры:
01{
02  "class": "TWorker",
03  "fetchall": 1,
04  "items":
05    [
06      {
07        "part": "what",
08        "name": "LastName"
09      },
10      {
11        "part": "what",
12        "name": "FirstName"
13      },
14      {
15        "part": "what",
16        "name": "BirthDate"
17      },
18      {
19        "part": "what",
20        "name": "AcademicDgree"
21      },
22      {
23        "part": "what",
24        "name": "ContactList",
25        "value": "TPerson.GetContactList",
26        "special": "function",
27        "context": [
28          {
29            "ContactType": "63474"
30          }
31        ]
32      },
33      {
34        "part": "where",
35        "name": "LastName",
36        "value": "А*"
37      },
38      {
39        "part": "order",
40        "name": "LastName"
41      },
42      {
43        "part": "order",
44        "name": "FirstName"
45      }
46    ]
47}