validateFunctionSignaturesJSON

Валидация functionSignatures.json файлы

Описание

пример

validateFunctionSignaturesJSON отображает сообщения валидации для functionSignatures.json файл в текущей папке. Сообщения о валидации указывают местоположение любого недопустимого кода и причину, по которой код является недопустимым. Номер линии в сообщении является гиперссылкой, которую можно кликнуть, чтобы перейти непосредственно к этой линии в редакторе.

Синтаксические ошибки JSON в functionSignatures.json влияние файла на валидацию файла. Если validateFunctionSignaturesJSON сообщает об ошибках синтаксиса JSON, исправляет эти ошибки и затем повторно оценивает файл.

Для получения информации о создании functionSignatures.json файл раздел «Настройка предложений кода и его выполнения».

validateFunctionSignaturesJSON(filenames) проверяет functionSignatures.json файлы в filenames. Используйте этот синтаксис для проверки файлов сигнатур функций в нескольких папках.

T = validateFunctionSignaturesJSON(___) возвращает таблицу результатов. Можно использовать этот синтаксис с любыми комбинациями входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создайте myFunc в текущей рабочей папке.

function myFunc(reqA,reqB,varargin)
    NV1 = true;
    NV2 = 'Default';
    posA = [];
    
    if nargin > 3
        if rem(nargin,2)
            posA = varargin{1};
            V = varargin(2:end);
        else
            V = varargin;
        end
        for n = 1:2:size(V,2)
            switch V{n}
                case 'Name1'
                    NV1 = V{n+1};
                case 'Name2'
                    NV2 = V{n+1}
                otherwise
                    error('Error.')
            end
        end
    end
end

Создайте следующий файл сигнатуры функции, как functionSignatures.json, в текущей рабочей папке. Он содержит три проблемы валидации.

  1. Свойство (атрибут) неправильно в первом объекте аргумента. Свойство должно быть "name" вместо "argument".

  2. Объект аргумента для in3 находится в неправильном порядке. Необходимо задать позиционные аргументы перед парами "имя-значение".

  3. После последнего объекта аргумента существует ненужная запятая. Запятая в этой позиции является синтаксической ошибкой JSON.

{
  "_schemaVersion": "1.0.0",
  "myFunc":
  {
     "inputs":
     [
        {"argument":"input1",  "kind":"required", "type":["numeric"], "purpose":"ID of item"},
        {"name":"input2",  "kind":"positional", "type":["numeric"], "purpose":"# Items"},
        {"name":"Name1", "kind":"namevalue", "type":["logical","scalar"],"purpose":"Option"},
        {"name":"in3",  "kind":"positional", "type":["numeric"], "purpose":"Input Value"},
        {"name":"Name2", "kind":"namevalue", "type":["char", "choices={'Default','Choice1','Choice2'}"]},
     ]
  }
}

Проверьте functionSignatures.json файл. Функция валидации не сообщает о первых двух проблемах с валидацией, поскольку она сталкивается с синтаксической ошибкой JSON.

validateFunctionSignaturesJSON
functionSignatures.json
=======================
L 12 (C 6-7): JSON syntax error at line 12, column 6 (character 551): expected value but found ']'.

Удалите дополнительную запятую в конце линии 12 и, чтобы просмотреть оставшиеся проблемы с валидацией, повторно проверьте файл.

validateFunctionSignaturesJSON
functionSignatures.json
=======================
L 7 (C 10-19): Invalid attribute "argument".
L 10 (C 32-43): "positional" argument must appear before all "namevalue" and "flag" arguments.

Исправьте оставшиеся проблемы.

{
  "_schemaVersion": "1.0.0",
  "myFunc":
  {
     "inputs":
     [
        {"name":"input1",  "kind":"required", "type":["numeric"], "purpose":"ID of item"},
        {"name":"input2",  "kind":"positional", "type":["numeric"], "purpose":"# Items"},
        {"name":"in3",  "kind":"positional", "type":["numeric"], "purpose":"Input Value"},
        {"name":"Name1", "kind":"namevalue", "type":["logical","scalar"],"purpose":"Option"},
        {"name":"Name2", "kind":"namevalue", "type":["char", "choices={'Default','Choice1','Choice2'}"]}
     ]
  }
}

Переоценка functionSignatures.json файл.

validateFunctionSignaturesJSON
validateFunctionSignaturesJSON completed without producing any messages.

Входные параметры

свернуть все

Абсолютный или относительный путь к functionSignatures.json файлы, заданные как вектор символов, массив ячеек из векторов символов или строковые массивы.

Пример: ["ProjectA/functionSignatures.json" "ProjectB/functionSignatures.json"]

Пример: 'myFolder/functionSignatures.json'

Введенный в R2018b