Перейти к содержимому

Json схема что это

  • автор:

JSON Schema

В данном примере применяется разный формат даты у объектов. Кроме того, один объект использует born (указывает, когда родился исполнитель), в то время как другие используют formed (когда образовалась группа/исполнитель).

В JSON нет правил, согласно которым некоторые объекты должны использовать определённый тип данных или даже содержать одинаковые поля. Им даже не нужно содержать одинаковое количество полей. Например, мы можем добавить поле favoritecolor к одному объекту, не добавляя его к другим.

Кроме того, нет правила, согласно которому данные должны быть в заданном формате. Например, поле born может быть представлено любым из следующих способов.

"born" : "1956" "born" : 1956 "born" : "Июль 15, 1956" "born" : "1956-07-15" "born" : "07/15/1956" "born" : "15/07/1956" "born" : "Я люблю апельсины!" "born" : [ < "albumname" : "Flying in a Blue Dream", "year" : "1989", "genre" : "Инструментальный рок" >, < "albumname" : "The Extremist", "year" : "1992", "genre" : "Инструментальный рок" >, < "albumname" : "Shockwave Supernova", "year" : "2015", "genre" : "Инструментальный рок" >] "born" : "Упс. "

Да, верно — «Упс. ». Вы можете вставить туда что угодно.

Эта гибкость — одна из вещей, которая делает JSON таким простым в использовании. Но она же одновременно может вызвать проблемы, показанные выше. Многие приложения, которые читают JSON-файлы, требуют, чтобы данные были в стандартном формате. Но даже если приложения это прочитают, людям будет трудно понять, какой именно датой является «Я люблю апельсины!».

Поэтому при работе с JSON часто требуется задать ограничения для типов данных, которые могут попадать в файл. Например, чтобы все даты вводились в определённом формате, скажем, ГГГГ-ММ-ДД. Или убедиться, что пользователи вводят только число в поле возраста.

Создание схемы

Вы можете применять правила для своих JSON-файлов, создав схему, которая позволяет указать, какой тип данных может добавляться в ваши файлы. Также схема может использоваться для проверки JSON-файла, чтобы убедиться, что он содержит только правильный тип данных.

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

Вот пример базовой схемы JSON Schema (взят с json-schema.org).

< "title": "Example Schema", "type": "object", "properties": < "firstName": < "type": "string" >, "lastName": < "type": "string" >, "age": < "description": "Age in years", "type": "integer", "minimum": 0 >>, "required": ["firstName", "lastName"] >

Можете использовать эту схему для проверки правильности ввода пользователем имени и возраста.

Как видите, JSON Schema на деле является тем же JSON. Так что не всегда легко определить что перед вами: JSON Schema или обычный JSON-документ.

Тем не менее, хорошей практикой считается размещение описания в верхней части схемы. Тогда описание объявляет, что перед нами схема JSON и оно поможет распознать, JSON Schema это или просто обычный JSON-документ.

Чтобы объявить JSON Schema, используйте ключевое слово $schema .

В данном примере объявляется JSON Schema, написанная для текущей версии спецификации.

Вы также можете указать явно, какую версию спецификации используете. В следующем примере объявляется JSON Schema, написанная для JSON Schema, черновая версия 4.

Для создания JSON Schema ознакомьтесь с JSONSchema.net. Это онлайн-инструмент, который автоматически генерирует JSON Schema из любого введённого вами JSON.

Введение в схему JSON в Java

Схема JSON — это декларативный язык для проверки формата и структуры объекта JSON . Это позволяет нам указать количество специальных примитивов, чтобы точно описать, как будет выглядеть действительный объект JSON .

Спецификация схемы JSON разделена на три части:

  • Ядро схемы JSON. В спецификации ядра схемы JSON определяется терминология схемы.
  • Проверка схемы JSON. Спецификация проверки схемы JSON — это документ, определяющий допустимые способы определения ограничений проверки. В этом документе также определяется набор ключевых слов, которые можно использовать для указания проверки для JSON API. В следующих примерах мы будем использовать некоторые из этих ключевых слов.
  • Гиперсхема JSON : это еще одно расширение спецификации схемы JSON, в котором определяются ключевые слова, связанные с гиперссылкой и гипермедиа.

2. Определение схемы JSON

Теперь, когда мы определили, для чего используется схема JSON , давайте создадим объект JSON и соответствующую схему JSON , описывающую его.

Ниже приведен простой объект JSON , представляющий каталог продуктов:

    "id": 1,   "name": "Lampshade",   "price": 0   > 

Мы могли бы определить его схему JSON следующим образом:

    "$schema": "http://json-schema.org/draft-04/schema#",   "title": "Product",   "description": "A product from the catalog",   "type": "object",   "properties":    "id":    "description": "The unique identifier for a product",   "type": "integer"   >,   "name":    "description": "Name of the product",   "type": "string"   >,   "price":    "type": "number",   "minimum": 0,   "exclusiveMinimum": true   >   >,   "required": ["id", "name", "price"]   > 

Как мы видим, схема JSON — это документ JSON , и этот документ ДОЛЖЕН быть объектом. Члены объекта (или свойства), определенные схемой JSON , называются ключевыми словами .

Давайте объясним ключевые слова, которые мы использовали в нашем примере:

  • Ключевое слово $schema указывает, что эта схема написана в соответствии с проектом спецификации v4.
  • Ключевые слова заголовка и описания носят только описательный характер, поскольку они не добавляют ограничений к проверяемым данным. Цель схемы указывается с помощью этих двух ключевых слов: описывает продукт.
  • Ключевое слово typeопределяет первое ограничение для наших данных JSON : это должен быть JSON Object .

Кроме того, схема JSON МОЖЕТ содержать свойства, которые не являются ключевыми словами схемы. В нашем случае id , name , price будут членами (или свойствами) объекта JSON .

Для каждого свойства мы можем определить тип . Мы определили id и name как строку и цену как число . В схеме JSON число может иметь минимум. По умолчанию этот минимум является инклюзивным, поэтому нам нужно указать ExclusiveMinimum .

Наконец, схема сообщает, что требуются идентификатор , имя и цена . «

3. Проверка с помощью схемы JSON

Создав нашу схему JSON , мы можем проверить наш объект JSON .

Есть много библиотек для выполнения этой задачи. Для нашего примера мы выбрали библиотеку Java json-schema .

Прежде всего, нам нужно добавить следующую зависимость в наш pom.xml :

 dependency>   groupId>org.everit.jsongroupId>   artifactId>org.everit.json.schemaartifactId>   version>1.3.0version>   dependency> 

Наконец, мы можем написать пару простых тестов для проверки нашего объекта JSON:

 @Test   public void givenInvalidInput_whenValidating_thenInvalid() throws ValidationException    JSONObject jsonSchema = new JSONObject(   new JSONTokener(JSONSchemaTest.class.getResourceAsStream("/schema.json")));   JSONObject jsonSubject = new JSONObject(   new JSONTokener(JSONSchemaTest.class.getResourceAsStream("/product_invalid.json")));    Schema schema = SchemaLoader.load(jsonSchema);   schema.validate(jsonSubject);   > 

В этом случае сгенерированное ValidationException будет указывать на #/price. Если вы посмотрите на консоль, она напечатает следующий вывод:

#/price: 0.0 is not higher than 0 

Второй тест выглядит следующим образом:

 @Test   public void givenValidInput_whenValidating_thenValid() throws ValidationException    JSONObject jsonSchema = new JSONObject(   new JSONTokener(JSONSchemaTest.class.getResourceAsStream("/schema.json")));   JSONObject jsonSubject = new JSONObject(   new JSONTokener(JSONSchemaTest.class.getResourceAsStream("/product_valid.json")));    Schema schema = SchemaLoader.load(jsonSchema);   schema.validate(jsonSubject);   > 

Поскольку мы используем действительный объект JSON , ошибка проверки не будет выдана.

4. Вывод

В этой статье мы определили, что такое схема JSON и какие ключевые слова помогают нам определить нашу схему.

Связав схему JSON с соответствующим представлением объекта JSON , мы можем выполнить некоторую задачу проверки.

Простой тестовый пример этой статьи можно найти в проекте GitHub .

Схема JSON шаблона сайта

Шаблон сайта представляет собой список действий. Сложные действия, например создание списка, содержат вложенные действия. Каждое действие указывается с помощью значения verb (команда). Действия-команды выполняются в том порядке, в котором они указаны в скрипте JSON. Используйте только указанные здесь действия-команды, иначе при попытке загрузить скрипт сайта возникнет ошибка «не удается обработать действие». Со временем список действий будет расширяться.

Общая структура JSON выглядит так:

 < "$schema": "schema.json", "actions": [ . . ], "bindata": < >, "version": 1 > 

Действия на сайте можно выполнять несколько раз. Повторное выполнение действий на том же сайте с теми же параметрами приведет к обновлению, а не дублированию существующей схемы.

addContentTypesFromHub

Используйте команду addContentTypesFromHub для синхронизации типов контента из концентратора типов контента с сайтом.

После применения команды addContentTypesFromHub на сайте поддействие addContentType в списке сможет добавить ее в список по имени.

Значение JSON

  • ids : массив ИД типов контента, которые необходимо синхронизировать.
Пример

Создание списка SharePoint

Используйте команду createSPList для создания списка SharePoint.

Если применить createSPList на сайте, запуск createSPList с тем же именем списка будет действовать как обновление существующего списка.

Значения JSON

  • listName : Имя списка.
  • templateType : Какой шаблон следует применить к списку. Как правило, используется значение 100. Полный список значений типов шаблонов задокументирован в перечислении SPListTemplateType, но в настоящее время мы поддерживаем следующие:
Имя шаблона списка Перечисление
Универсальный список 100
Библиотека документов 101
Опрос 102
Ссылки 103
Объявления 104
Контакты 105
События 106
Задачи 107
Доска обсуждений 108
Библиотека рисунков 109
Страницы сайта 119
Отслеживание проблем 1100
Пример

Массив вложенных действий содержит дополнительные действия для создания списка. Подзакции также указываются с использованием значения verb .

setDescription

Задает описание списка.

Значение JSON
  • description : Описание нового списка.
Пример

addSPField

Добавляет новое поле.

Значения JSON
  • fieldType : Тип поля может быть установлен на Text , Note , Number , Boolean , User , или DateTime . Сведения о других типах данных см. в описании действия addSPFieldXml.
  • displayName : Выводимое имя поля.
  • id : Необязательный атрибут. Если он задан, указывает идентификатор поля. Это должен быть уникальный, случайно сгенерированный идентификатор GUID. Рекомендуется указывать значение для этого, чтобы гарантировать, что поле не будет добавлено несколько раз, если скрипт будет перезапущен.
  • internalName : Необязательный атрибут. Если он задан, указывает внутреннее имя поля. Если не указан, внутреннее имя будет основано на отображаемом имени.
  • isRequired : True если это поле обязательно должно содержать информацию; в противном случае, False.
  • addToDefaultView : True если поле будет добавлено к виду по умолчанию; в противном случае, False.
  • enforceUnique : Необязательный атрибут со значением по умолчанию False. Если True, все значения для этого поля должны быть уникальными.
Пример

deleteSPField

Удаляет стандартное поле, предоставленное выбранным типом шаблона.

Значение JSON
  • displayName : Отображаемое имя для идентификации поля, которое нужно удалить.
Пример

addSPFieldXml

Позволяет определять поля и их элементы с помощью языка CAML. Описание см. в статье Элемент Field (Field). Предоставление атрибута ID в поле schemaXml важно для предотвращения создания поля несколько раз, если сценарий запускается более одного раза.

В настоящее время эти конструкции полей не могут быть обозначены как столбцы сайта или добавлены в типы контента. Чтобы создать столбцы сайта с полем XML, используйте действие createSiteColumnXml.

Значение JSON
  • schemaXml : Блок CAML для определения поля.
  • addToDefaultView : True если поле будет добавлено к виду по умолчанию; в противном случае, False.
Пример
< "verb": "addSPFieldXml", "schemaXml": "OperationsOperationsITLegalEngineering" > 

addSPLookupFieldXml

Позволяет определять поля подстановки и зависящие от них элементы списков с помощью языка CAML. Описание см. в статье Элемент Field (Field). Предоставление атрибута ID в поле schemaXml важно для предотвращения создания поля несколько раз, если сценарий запускается более одного раза.

Значение JSON
  • schemaXml : Блок CAML для определения поля.
  • targetListName : Имя, которое идентифицирует список, на который ссылается это поле поиска. Укажите либо его, либо targetListUrl.
  • targetListUrl : Относительный веб-URL, который идентифицирует список, на который ссылается это поле поиска. Укажите либо его, либо targetListName.
  • addToDefaultView : True если поле будет добавлено к виду по умолчанию; в противном случае, False.
Пример
< "verb": "addSPLookupFieldXml", "schemaXml": "", "targetListName": "Contoso Project Master" > 

addSiteColumn

Вложенное действие для добавления ранее определенного столбца сайта непосредственно в список (существующий или созданный с помощью скрипта сайта).

Значение JSON
  • internalName : Внутреннее имя добавляемого столбца сайта.
  • addToDefaultView : необязательный атрибут, который по умолчанию имеет значение False. Если задано значение True, то в представление по умолчанию также будет добавлено только что добавленное поле.
Пример

addSPView

Определяет представление и добавляет его в список. Используйте это действие, чтобы указать необходимые столбцы и способ отображения элементов списка (с помощью запроса CAML). Свойства действия позволяют указать пределы строки, а также следует ли разбивать представление на страницы и рекурсивно повторять его во вложенных папках. Вы также можете сделать созданное представление стандартным.

Значение JSON
  • name : Название вида.
  • viewFields : Массив внутренних имен полей в вашем представлении.
  • query : : Строка запроса CAML, содержащая предложение where для запроса представления. См. статью Схемы CAML.
  • rowLimit : Предел строки представления.
  • isPaged : Указывает, является ли представление выгруженным.
  • makeDefault : Если True, вид будет установлен по умолчанию для списка; в противном случае, False.
  • scope : Необязательный параметр для указания области просмотра. Для получения дополнительной информации см. Перечисление SPViewScope.
  • formatterJSON : Необязательный параметр для установки форматирования JSON для представления.
Пример
< "verb": "addSPView", "name": "Contoso Projects by Category", "viewFields": [ "ID", "Title", "siteColumnUser", "ProjectCategory" ], "query": "", "rowLimit": 100, "isPaged": true, "makeDefault": true > 

removeSPView

Удаляет представление из списка. Кроме того, это действие можно использовать для удаления представления, унаследованного от шаблона сайта.

Значение JSON
  • name : Имя вида для удаления.
Пример

addContentType

Добавляет тип контента в список. На данный момент для этого действия используются только стандартные типы контента, включенные в шаблон сайта или определенные в скрипте c помощью действия createContentType.

В настоящее время добавление корпоративных типов контента не поддерживается.

Значение JSON
  • name : Имя добавляемого типа контента.
Пример

removeContentType

Удаляет тип контента, предоставленный выбранным типом шаблона.

Значение JSON
  • name : Имя типа контента, который нужно удалить.
Пример

setSPFieldCustomFormatter

Задает форматирование столбца для поля. Дополнительные сведения см. в статье Настройка SharePoint с помощью форматирования столбцов.

Значения JSON
  • fieldDisplayName : Выводимое имя поля для обработки.
  • formatterJSON : Объект JSON, используемый в качестве CustomFormatter поля.
Пример

В этом примере показано, как отформатировать столбец чисел, чтобы отобразить его в виде гистограммы.

< "verb": "setSPFieldCustomFormatter", "fieldDisplayName": "Effort (days)", "formatterJSON": < "debugMode": true, "elmType": "div", "txtContent": "@currentField", "attributes": < "class": "sp-field-dataBars" >, "style": < "width": < "operator": "?", "operands": [ < "operator": ">", "operands": ["@currentField", "20"] >, "100%", < "operator": "+", "operands": [ < "operator": "toString()", "operands": [ < "operator": "*", "operands": ["@currentField",5] >] >, "%" ] > ] > > > > 

associateFieldCustomizer

Регистрирует расширение поля для поля списка. Дополнительные сведения об этих клиентских расширениях см. в статье Создание настройщика полей.

Значения JSON
  • internalName : Внутреннее имя поля для работы.
  • clientSiteComponentId : Идентификатор (GUID) расширения в каталоге приложений. Это значение свойства можно найти в файле manifest.json или elements.xml.
  • clientSiteComponentProperties : Необязательный параметр, который можно использовать для предоставления свойств для экземпляра расширения настройщика поля.
Пример

associateListViewCommandSet

Связывает объект ListViewCommandSet со списком.

Значения JSON
  • title : Название расширения.
  • location : Обязательный параметр, чтобы указать, где отображается команда. Параметры: ClientSideExtension.ListViewCommandSet.ContextMenu или ClientSideExtension.ListViewCommandSet.CommandBar.
  • clientSideComponentId : Идентификатор (GUID) расширения в каталоге приложений. Это значение свойства можно найти в файле manifest.json или elements.xml.
  • clientSideComponentProperties : Необязательный параметр, который можно использовать для предоставления свойств для экземпляра расширения.
Пример

setTitle

Переименовывает список. Чтобы создать новый список с определенным именем, вместо использования setTitle используйте параметр listName в действии CreateSPList .

Использование setTitle переименует список, не позволяя обновлять его в случае повторного применения шаблона сайта.

Значение JSON
  • title : Название нового списка.
Пример

Определение нового столбца сайта

Используйте команду createSiteColumn , чтобы определить новый столбец сайта, который затем можно будет сопоставить со списком либо напрямую, либо с помощью действия addContentType.

Значение JSON
  • fieldType : Тип добавляемого столбца. Поддерживаемые значения (как и в типе SPField): Text (Текст), Note (Примечание), Number (Число), Boolean (Логическое), User (Пользователь) и DateTime (Дата и время). Сведения о других типах данных см. в описании действия скрипта addSPFieldXml.
  • internalName : Внутреннее имя столбца сайта;
  • displayName : Выводимое имя столбца сайта.
  • isRequired : True если это поле обязательно должно содержать информацию; в противном случае, False.
  • id : Необязательный атрибут. Если он задан, указывает идентификатор поля. Это должен быть уникальный, случайно сгенерированный идентификатор GUID. Рекомендуется указывать значение для этого, чтобы гарантировать, что поле не будет добавлено несколько раз, если скрипт будет перезапущен.
  • group : Необязательный атрибут для обозначения группы столбцов.
  • enforceUnique : Необязательный атрибут со значением по умолчанию False. Если True, все значения для этого поля должны быть уникальными.
Пример

Используйте команду createSiteColumnXml , чтобы определить новый столбец сайта для тех сложных типов данных, которые не поддерживаются createSiteColumn. Затем эти столбцы можно связать со списком напрямую или при помощи действия addContentType. Предоставление атрибута ID в поле schemaXml важно для предотвращения создания поля несколько раз, если сценарий запускается более одного раза.

Значение JSON
  • schemaXml : Блок CAML для определения поля.
  • pushChanges Указывает, следует ли отправить это изменение в списки, которые уже ссылаются на это поле. По умолчанию значение true.
Пример
< "verb": "createSiteColumnXml", "schemaXml": "In ProgressIn ProgressIn ReviewDoneHas Issues" > 

Определение нового типа контента

Используйте действие createContentType, чтобы определить новый тип контента, который затем можно будет сопоставить со списком c помощью действия addContentType.

Значение JSON

При ссылке на идентификатор типа контента необходим только один из следующих трех параметров: ID, parentName или parentId.

  • name : Имя типа контента для создания.
  • description : Необязательное описание типа контента.
  • parentName : Имя родительского типа контента.
  • parentId : Идентификатор родительского типа контента.
  • id : Идентификатор типа контента.
  • hidden : Указывает, является ли тип содержимого видимым или скрытым.
  • group : Группа по типу контента.
  • subactions : Определяет второстепенные действия для запуска по типу контента. Они используются для обозначения столбцов сайта, которые необходимо добавить.
Пример

addSiteColumn

Вложенное действие для добавления ранее определенного столбца сайта непосредственно в тип контента (существующий или созданный с помощью скрипта сайта).

Значение JSON
  • internalName : Внутреннее имя добавляемого столбца сайта.
Пример

removeSiteColumn

Вложенное действие для удаления столбца сайта из списка или типа контента.

Значение JSON
  • internalName : Внутреннее имя удаляемого столбца сайта.
Пример

Добавление ссылки для перехода

Используйте команду addNavLink , чтобы добавить новую навигационную ссылку на сайт QuickLaunch или Hub navigation.

Значения JSON
  • url : URL-адрес ссылки для добавления.
  • displayName : Отображаемое имя ссылки.
  • navComponent Компонент, в который нужно добавить ссылку, QuickLaunch, Hub или Footer. По умолчанию задано значение QuickLaunch.
  • isWebRelative : True если ссылка является веб-относительной; в противном случае, False. Значение по умолчанию — false.
  • parentDisplayName : Необязательный параметр. Если он указан, то данная навигационная ссылка становится дочерней для навигационной ссылки с этим значением displayName. Если указано и это значение, и параметр parentUrl, то выполняется поиск родительской ссылки, соответствующей обоим значениям.
  • parentUrl : Необязательный параметр. Если он указан, эта навигационная ссылка становится дочерней (подссылкой) для навигационной ссылки с этим URL-адресом. Если указано и это значение, так и parentDisplayName, то выполняется поиск родительской ссылки, соответствующей обоим значениям.
  • isParentUrlWebRelative : Необязательный параметр. True если ссылка является веб-относительной; в противном случае, False. Значение по умолчанию — False.
Пример

При добавлении ссылки на вложенный элемент сайта, в частности список, обязательно указывайте путь от корневого сайта.

Удаление навигационной ссылки

Используйте команду removeNavLink , чтобы удалить навигационную ссылку с сайта.

Значения JSON
  • url : URL-адрес ссылки для удаления.
  • displayName : Отображаемое имя ссылки.
  • navComponent Компонент, из которого необходимо удалить ссылку, QuickLaunch, Hub или Footer. По умолчанию задано значение QuickLaunch.
  • isWebRelative : True если ссылка является веб-относительной; в противном случае, False.
Пример

С помощью этого действия можно удалять ссылки сайтов, добавленные шаблонами сайтов для совместной работы и связи (например, «Главная», «Документы», «Страницы» и «Беседы»).

Обработка специальных знаков

Сайты, созданные на языках, отличных от английского, могут содержать специальные знаки. Для чтения контента JSON, содержащего специальные знаки, используйте кодировку UTF-8.

Get-Content '\site-script.json' -Raw -Encoding UTF8 

Применение темы

Используйте команду applyTheme , чтобы добавить пользовательскую тему на сайт. Дополнительные сведения о создании и добавлении этих тем см. в статье Настройка темы сайта SharePoint. Это действие сайта работает только для применения пользовательских тем; чтобы применить одну из наших тем SharePoint в составе продукта, создайте копию как пользовательскую и создайте ссылку на нее.

Это действие автоматически блокируется для сайтов каналов.

Значение JSON
  • themeName : Название темы для применения.
Пример

[!NOTE] > The createPage site script action is in preview and is subject to change. itsn’t currently supported for use in production environments. #### JSON values — `fileName`: The name of the file. — `setAsHomePage`: **True** if this page is the home page; otherwise, **False**. — `pageData`: An object with additional information about the page. **pageData** requires the following values: — `Title`: The title of the page. — `BannerImageUrl`: A URL specifying the location of an image to display for the banner. — `CanvasContent1`: Content for the page specified as XML. — `LayoutWebpartsContent`: JSON for the layout. #### Example «`json < "verb": "createPage", "fileName": "event-collateral.aspx", "pageData": < "Title": "Comment customer events", "BannerImageUrl": "/Customer Event Collateral/customer.jpg", "CanvasContent1": " ", "LayoutWebpartsContent": "» >, «setAsHomePage»: true > «` —>

Настройка свойств фирменной символики

Используйте команду setSiteBranding , чтобы указать макет навигации, макет заголовка и фон заголовка.

Настройка структуры навигации возможна только в шаблонах информационных сайтов и для центральной структуры навигации. Это действие автоматически блокируется для сайтов каналов.

Значение JSON
  • navigationLayout : Укажите навигационный макет как Каскад или Мегаменю
  • headerLayout : Укажите макет заголовка как Стандартный или Компактный
  • headerBackground : Выбор фона заголовка как «нет», «нейтрально», «мягкий» или «надежный»
  • showFooter : Укажите, должен ли показываться нижний колонтитул сайта или нет
Пример

Установка логотипа сайта

Используйте команду setSiteLogo , чтобы указать логотип для вашего сайта.

Это действие работает только для шаблона информационного сайта (68).

Значение JSON
  • url : URL-адрес используемого изображения логотипа.
Пример

Присоединение к центральному сайту

Это действие автоматически блокируется для сайтов каналов.

Используйте команду joinHubSite , чтобы присоединить сайт к назначенному сайту-концентратору.

Значение JSON
  • hubSiteId : Идентификатор сайта-концентратора, к которому нужно присоединиться.
  • name : Необязательная строка, указывающая имя сайта-концентратора.
Пример

Чтобы получить hubSiteId , войдите на сайт с помощью командлета Connect-PnPOnline и запустите:

$hubSiteName = "My Hub Site" Get-PnPHubSite | Where-Object

Возвращает информацию о сайте-концентраторе с именем $hubSiteName. HubSiteId возвращается как SiteId.

Установка надстройки или решения

Используйте действие installSolution для установки развернутой надстройки или решения SharePoint Framework из каталога приложений клиента.

Пример

Чтобы получить идентификатор решения, войдите в систему на сайте с помощью командлета Connect-PnPOnline, а затем выполните команду Get-PnPApp. В результате будет возвращен список развернутых решений. Для клиентов с поддержкой нескольких регионов используйте идентификатор продукта после настройки решения в каждом географическом расположении. Получите идентификатор продукта, отправив решение в каталог приложений, или в определении решения.

Регистрация расширения

Используйте действие associateExtension , чтобы зарегистрировать развернутое расширение SharePoint Framework из каталога приложений клиента.

Дополнительные сведения о создании и настройке расширения SharePoint Framework см. в статье Обзор расширений SharePoint Framework.

Значения JSON
  • title : Название расширения в каталоге приложений.
  • location : Используется для указания типа расширения. Если он используется для создания команд, то место, где команда будет отображаться; В противном случае для параметра должно быть задано значение ClientSideExtension.ApplicationCustomizer.
  • clientSideComponentId : Идентификатор (GUID) расширения в каталоге приложений. Это значение свойства можно найти в файле manifest.json или elements.xml.
  • clientSideComponentProperties : Необязательный параметр, который можно использовать для предоставления свойств для экземпляра расширения.
  • registrationId : Необязательный параметр, который указывает тип списка, с которым связано расширение (если это расширение списка).
  • registrationType : Необязательный параметр, который следует указывать, если расширение связано со списком.
  • scope : Указывает, связано ли расширение с Web или Site .
Пример

Активация компонента

Используйте действие activateSPFeature для активации функции SharePoint.

Значения JSON
  • featureId : Идентификатор функции для активации (GUID).
  • scope : Указывает, связана ли функция с web или site .
Пример

Чтобы включить функцию веб-области, которая позволяет создавать списки событий (идентификатор функции 00bfea71-ec85-4903-972d-ebe475780106):

Вызов потока

Используйте команду triggerFlow , чтобы запустить пользовательский поток.

В статье Вызов Power Automate из сценария сайта приведен комплексный пример.

Значения JSON
  • url : URL-адрес триггера потока.
  • name : Название потока.
  • parameters : Необязательный набор параметров для передачи в поток.
Пример
 < "verb": "triggerFlow", "url": "", "name": "Record and tweet site creation event", "parameters": < "event": "Microsoft Event", "product": "SharePoint" >> 

Настройка региональных параметров

Это действие автоматически блокируется для сайтов каналов.

Используйте действие setRegionalSettings для настройки региональных параметров сайта (/_layouts/15/regionalsetng.aspx).

Значения JSON
  • timeZone : : Число, указывающее часовой пояс. Список допустимых значений см. в разделе SPRegsionalSettings.TimeZones
  • locale : Число, указывающее культуру LCID. Список допустимых значений см. в разделе Значения идентификатора языка Microsoft.
  • sortOrder : Число, определяющее порядок сортировки. Список допустимых значений см. в разделе SPRegionalSettings.Collation
  • hourFormat : Указывает, должен ли сайт использовать 12-часовой или 24-часовой формат времени.
Пример

Добавление пользователей (субъектов) в группы SharePoint

Это действие автоматически блокируется для сайтов каналов.

Используйте действие addPrincipalToSPGroup для управления добавлением пользователей и групп для выбора групп SharePoint по умолчанию. Дополнительные сведения см. в статье Общие сведения о группах SharePoint. Это действие можно использовать для лицензированных пользователей, групп безопасности и компонента «Группы Microsoft 365».

Значения JSON
  • principal : Обязательный параметр для указания имени участника (пользователя или группы) для добавления в группу SharePoint.
  • group : Обязательный параметр, чтобы указать группу SharePoint, к которой нужно добавить участника.
Пример

В настоящее время это действие поддерживает только группы посетителей (уровень разрешений: чтение), группы членов (уровень разрешений: соавторство или редактирование в зависимости от того, каков шаблон сайта) и группы владельцев (уровень разрешений: полный контроль). Субъекты необходимо добавлять по отдельности.

Управление гостевым доступом

Это действие автоматически блокируется для сайтов каналов.

Используйте действие setSiteExternalSharingCapability для управления гостевым доступом. Дополнительные сведения см. в статье Управление внешним общим доступом для среды SharePoint Online

Значения JSON
  • capability : Обязательный параметр, чтобы указать параметр общего доступа для семейства сайтов. Четыре варианта: Disabled , ExistingExternalUserSharingOnly , ExternalUserSharingOnly , и ExternalUserAndGuestSharing .
Пример

См. также

JSON – схема

В настоящее время доступно несколько валидаторов для разных языков программирования. В настоящее время наиболее полным и совместимым валидатором JSON Schema является JSV.

Языки Библиотеки
С WJElement (LGPLv3)
Джава JSON-схема-валидатор (LGPLv3)
.СЕТЬ Json.NET (MIT)
ActionScript 3 Фригга (MIT)
Haskell Эзон-схема (MIT)
питон Jsonschema
Рубин автоматический анализ (ASL 2.0); Руби-Джонсхема (MIT)
PHP php-json-схема (MIT). JSON-схема (Беркли)
JavaScript Упорядоченный (BSD); JSV; JSON-схема; Matic (MIT); Dojo; Persevere (модифицированный BSD или AFL 2.0); schema.js.

Пример схемы JSON

Ниже приведена базовая схема JSON, которая охватывает классическое описание каталога продукции –

 "$schema": "http://json-schema.org/draft-04/schema#", "title": "Product", "description": "A product from Acme's catalog", "type": "object", "properties":  "id":  "description": "The unique identifier for a product", "type": "integer" >, "name":  "description": "Name of the product", "type": "string" >, "price":  "type": "number", "minimum": 0, "exclusiveMinimum": true > >, "required": ["id", "name", "price"] >

Давайте проверим различные важные ключевые слова, которые можно использовать в этой схеме –

Ключевое слово $ schema утверждает, что эта схема написана согласно черновой спецификации v4.

Вы будете использовать это, чтобы дать название вашей схеме.

Небольшое описание схемы.

Ключевое слово type определяет первое ограничение для наших данных JSON: это должен быть объект JSON.

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

Это сохраняет список необходимых свойств.

минимальный

Это ограничение, накладываемое на значение, и представляет минимально допустимое значение.

exclusiveMinimum

Если присутствует «exclusiveMinimum» и имеет логическое значение true, экземпляр действителен, если он строго больше значения «минимума».

максимальная

Это ограничение, которое будет наложено на значение и представляет собой максимально допустимое значение.

exclusiveMaximum

Если присутствует «exclusiveMaximum» и имеет логическое значение true, экземпляр действителен, если он строго ниже значения «Maximum».

Числовой экземпляр действителен для «множественного значения», если результатом деления экземпляра по значению этого ключевого слова является целое число.

максимальная длина

Длина экземпляра строки определяется как максимальное количество ее символов.

Длина экземпляра строки определяется как минимальное количество ее символов.

Экземпляр строки считается допустимым, если регулярное выражение соответствует экземпляру успешно.

Ключевое слово $ schema утверждает, что эта схема написана согласно черновой спецификации v4.

Вы будете использовать это, чтобы дать название вашей схеме.

Небольшое описание схемы.

Ключевое слово type определяет первое ограничение для наших данных JSON: это должен быть объект JSON.

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

Это сохраняет список необходимых свойств.

минимальный

Это ограничение, накладываемое на значение, и представляет минимально допустимое значение.

exclusiveMinimum

Если присутствует «exclusiveMinimum» и имеет логическое значение true, экземпляр действителен, если он строго больше значения «минимума».

максимальная

Это ограничение, которое будет наложено на значение и представляет собой максимально допустимое значение.

exclusiveMaximum

Если присутствует «exclusiveMaximum» и имеет логическое значение true, экземпляр действителен, если он строго ниже значения «Maximum».

Числовой экземпляр действителен для «множественного значения», если результатом деления экземпляра по значению этого ключевого слова является целое число.

максимальная длина

Длина экземпляра строки определяется как максимальное количество ее символов.

Длина экземпляра строки определяется как минимальное количество ее символов.

Экземпляр строки считается допустимым, если регулярное выражение соответствует экземпляру успешно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *