По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Многим приложениям нужно обмениваться данными между клиентом и сервером. Долгое время эталонным форматом данных для обмена информацией между двумя объектами считался XML. Затем, в начале 2000-х, появился альтернативный формат JSON. В данной статье вы узнаете все о JSON. Мы рассмотрим, что это, и как им пользоваться, а также разберем ряд популярных заблуждений. Что такое JSON? JSON (JavaScript Object Notation, нотация объектов JavaScript) - это текстовый формат обмена данными. Он представлен наборами пар "ключ-значение", причем ключ - это всегда строка, а значение может задаваться одним из следующих типов: число; строка; логическое значение; массив; объект; нулевое значение null. Несколько важных правил: В формате данных JSON ключи прописываются в двойных кавычках. Ключ и значение разделяются двоеточием (:). Может быть несколько пар "ключ-значение". Каждая пара отделяется запятой (,). В данных JSON недопустимы комментарии (// или /* */). (Но при желании это ограничение можно обойти) Ниже приведен пример простых данных в JSON: { "name": "Alex C", "age": 2, "city": "Houston" } Допустимые данные в JSON возможны в 2 разных форматах: Набор пар «ключ-значение» в фигурных скобках {...}. Это показано в примере выше. Упорядоченные списки пар «ключ-значение», разделенных запятой (,) и заключенных в квадратные скобки [...]. См. пример ниже: [ { "name": "Alex C", "age": 2, "city": "Houston" }, { "name": "John G", "age": 40, "city": "Washington" }, { "name": "Bala T", "age": 22, "city": "Bangalore" } ] Предположим, вы уже писали что-то на JavaScript. Тогда у вы можете ошибочно предположить, что формат JSON и объекты JavaScript (и массивы объектов) очень похожи. Но это не так. Чуть позже мы подробно об этом поговорим. Структура JSON разработана на основе синтаксиса объектов JavaScript, и это единственное, что объединяет JSON и объекты JavaScript. Формат JSON не зависит от языка программирования. Мы можем использовать JSON в Python, Java, PHP и многих других языках. Примеры формата данных JSON Сохранять данные JSON можно в файле с расширением .json. Давайте создадим файл employee.json с атрибутами сотрудника. Они представлены в виде ключей и значений. { "name": "Aleix Melon", "id": "E00245", "role": ["Dev", "DBA"], "age": 23, "doj": "11-12-2019", "married": false, "address": { "street": "32, Laham St.", "city": "Innsbruck", "country": "Austria" }, "referred-by": "E0012" } В примере выше присутствуют следующие атрибуты сотрудника: name – имя сотрудника. Значение в строковом формате (String). Оно указано в двойных кавычках. id – уникальный идентификатор сотрудника. Опять же, в строковом формате. role – роли, которые сотрудник выполняет в организации. Таких ролей может быть несколько, поэтому лучше перечислять эти данные в формате массива (Array). age – текущий возраст сотрудника. Это числовое значение (Number). doj – дата найма сотрудника. Поскольку это дата, ее добавляют в двойных кавычках и обрабатывают как строку. married – замужем/женат ли сотрудник? Ответом может быть да/нет (то есть true или false), так что это логический формат (Boolean). address – адрес сотрудника. Может состоять из нескольких частей: улица, город, страна, индекс и т.д. Такое поле лучше представлять в виде объекта (Object с парами «ключ-значение»). referred-by – идентификатор сотрудника, который порекомендовал этого человека на должность в организацию. Если сотрудник пришел по рекомендации, то атрибут имеет значение. В остальных случаях поле остается пустым, т.е. null. Теперь давайте создадим набор данных по сотрудникам в формате JSON. Если мы хотим добавить несколько записей о разных сотрудниках, то необходимо прописать их в квадратных скобках [...]. [ { "name": "Aleix Melon", "id": "E00245", "role": ["Dev", "DBA"], "age": 23, "doj": "11-12-2019", "married": false, "address": { "street": "32, Laham St.", "city": "Innsbruck", "country": "Austria" }, "referred-by": "E0012" }, { "name": "Bob Washington", "id": "E01245", "role": ["HR"], "age": 43, "doj": "10-06-2010", "married": true, "address": { "street": "45, Abraham Lane.", "city": "Washington", "country": "USA" }, "referred-by": null } ] Обратите внимание на значение атрибута referred-by для сотрудника Боба Вашингтона (Bob Washington). Оно пустое. То есть никто из сотрудников не давал ему рекомендаций. Как использовать данные JSON в качестве значения строки Мы узнали, как форматировать данные внутри файла JSON. Еще можно использовать данные JSON в качестве строковых значений и присваивать их переменной. Поскольку JSON считается текстовым форматом, в большинстве языков программирования его можно обрабатывать как строку. Давайте рассмотрим пример, как это делается JavaScript. Вы можете добавить данные JSON в одну строку. Перечисление делается через одинарные кавычки '...'. const user = '{"name": "Alex C", "age": 2, "city": "Houston"}'; Если вы хотите сохранить форматирование, то данные JSON лучше создавать с помощью шаблонных литералов (template literals). const user = `{ "name": "Alex C", "age": 2, "city": "Houston" }`; Кроме того, это очень удобное решение, если нужно создать данные JSON с динамическими значениями. const age = 2; const user = `{ "name": "Alex C", "age": ${age}, "city": "Houston" }`; console.log(user); // Output { "name": "Alex C", "age": 2, "city": "Houston" } Объекты JavaScript и JSON – это НЕ одно и то же Формат данных JSON создавался на базе объектной структуры JavaScript. Но все сходства на этом заканчиваются. Объекты в JavaScript: у объектов JavaScript могут быть методы, а у JSON – нет; ключи можно добавлять без кавычек; разрешены комментарии; отдельные сущности Как преобразовать JSON в объект JavaScript и наоборот В JavaScript есть 2 встроенных метода по преобразованию данных JSON в объекты JavaScript и наоборот. Как преобразовать данные JSON в объект JavaScript Для преобразования данных JSON в объект JavaScript используется метод JSON.parse(). Он проводит синтаксический разбор (парсинг) допустимой строки JSON в объект JavaScript. const userJSONData = `{ "name": "Alex C", "age": 2, "city": "Houston" }`; const userObj = JSON.parse(userJSONData); console.log(userObj); Вывод: Как преобразовать объект JavaScript в данные JSON Для преобразования объекта JavaScript в данные JSON используется метод JSON.stringify(). const userObj = { name: 'Alex C', age: 2, city: 'Houston' } const userJSONData = JSON.stringify(userObj); console.log(userJSONData); Вывод: Должно быть, вы обратили внимание на слово JSON, которое используется для вызова методов parse() и stringify(). Это встроенный объект JavaScript, который, хоть и называется JSON (хотя с тем же успехом он мог бы называться JSONUtil), но не имеет никакого отношения к формату JSON. Так что, пожалуйста, помните об этом. Как обрабатывать ошибки "Unexpected token u in JSON at position 1" и другие? При обработке JSON могут возникать ошибки. Это нормально. Например, при разборе данных JSON в объект JavaScript вдруг появляется следующее сообщение: Если возникает такая ошибка, обязательно проверьте корректность ваших данных в JSON. Чаще всего причина синтаксического сбоя кроется в небольшой ошибке, которую вы случайно сделали в исходных данных JSON. Проверить правильность данных и форматов JSON можно с помощью JSON Linter.
img
В данной статье будет рассмотрена настройка и подключение телефонного аппарата к АТС OpenScape Voice на примере телефонных аппаратов семейства Siemens OpenStage, работающих по протоколу SIP. Для подключения нового абонента к системе требуются: Префикс номера (Office Code) - префикс телефонного номера в системе, по которому осуществляется маршрутизация вызовов; Полный внутренний номер (Home Directory Number) - состоит из префикса номера и внутреннего номера; Внутренний номерной план (Private Numbering Plan) - определяет правила маршрутизации для группы абонентов; Настойка параметров абонента (Subscriber); Для конфигурации используется система управления - Common Management Portal. Она представлена в виде веб-портала. Создание префикса номера Для этого необходимо перейти в раздел Configuration → OpenScape Voice → Global Translation and Routing → Directory Numbers → Office Codes: Номер телефона состоит из короткого внутреннего номера (Extension) и префикса - локального кода офиса (Local Office Code). Нажимаем на кнопку Add… и поле Local Office Code указываем префикс, а ниже указываем диапазон внутренних номеров в полях Directory Number Start и Directory Number End. После нажимаем Save. Создание внутреннего номера Переходим в раздел Configuration → OpenScape Voice → Global Translation and Routing → Directory Numbers → Home Directory Numbers: Нажимаем Add… и в поле Office Code указываем созданный префикс, а в полях Directory Number Start и Directory Number End указываем начальный и конченый диапазон номеров. Если необходимо добавить только один номер, то его нужно указать в поле Directory Number Start, а поле Directory Number End оставить пустым. Нажимаем Save, и номер появляется в списке. Создание внутреннего номерного плана Для этого в разделе Configuration → OpenScape Voice → Business Group → Private Numbering Plan List нажимаем на Add… и вводим название номерного плана. После этого в списке номерных планов можно нажать Set as Default для назначения планом по умолчанию. Настойка параметров абонента В разделе Configuration → OpenScape Voice → Business Group → Members → Subscribers нажимаем Add… и в открывшемся окне во вкладке General в поле Directory Number вводим полный номер абонента. Для корпоративной сети тип номера указываем Private. Переходим на вкладку Displays и в поле Display Name вводе имя абонента, которое будет отображаться при звонках (для того чтобы отображалось имя на русском языке его нужно ввести в поле Unicode Display Name). Далее во вкладке Connection в строке Type выставляем Dynamic, а в строке Transport Protocol - TCP и затем нажимаем на Save. После первичной настройки для добавления новых абонентов используется только пункты создания внутреннего номера и настройки параметров, в которых указываются уже существующие префиксы и номерные планы. Настройка параметров на телефоне Перейдем к настройке самого телефонного аппарата. Телефон можно настроить либо через веб-интерфейс, набрав в адресной строке https://[ip адрес телефона], либо через меню самого аппарата. Прежде всего необходимо проверить доступность телефона до OpenScape Voice. Это может сделать при помощи утилиты Ping, которая находится в меню Administrator → Diagnostics → Miscellaneous → IP tests. В этом же разделе можно произвести трассировку до необходимого адреса. Сетевые параметры можно изменить в разделе Network. После проверки доступности необходимо перейти в раздел System → System Identity и в строке Terminal Number ввести полный номер абонента вместе с префиксом. В Display Identity можно указать номер, который будет высвечиваться на экране. После этого нажать Submit. В соседнем разделе SIP interface нужно выбрать транспортный протокол, который мы ранее задавали в параметрах абонента (а данном случае TCP). Далее в разделе Registration необходимо указать адреса интерфейса SIP системы OpenScape, в полях SIP server address и SIP registrar address. В поле server type выбираем OS Voice и нажимаем Submit. После проведенных манипуляций на экране телефона высветится его номер. Проверить регистрацию телефона можно через CMP в меню Configuration → OpenScape Voice → Business Group → Subscriber нажав на кнопку More и выпадающем меню выбрав пункт Registration Status. Далее в строке поиска выбрать критерий, ввести данные и нажать на Search. В результате будет показан статус регистрации телефона. Будет выведена информация о номере абонента, типе регистрации, статусе регистрации, IP адресе терминала и полном SIP адресе терминала.
img
В этой статье приведены рекомендации по внедрению VMware vSAN (ранее известной как Virtual SAN) с помощью H730 Dell PERC или FD332-PERC контроллеров хранения данных. Лучшие практики Убедитесь, что используемая версия драйвера и микропрограммного обеспечения соответствует требованиям Руководства по совместимости VMware для vSAN (VCG). Убедитесь, что все диски поддерживаются корпорацией Dell и что все обновления встроенного ПО Dell применяются к этим дискам. Рекомендуемые комбинации драйверов и микропрограмм для основных версий vSAN см. в приведенных ниже таблицах. УстройствоРекомендуемый драйверРекомендуемое микропрограммное обеспечениеBP13G+ (Non-expander backplane)NA2.23 or laterBP13G+EX (Expander backplane)NA3.03 or laterPERC H730https://www.vmware.com/resources/compatibility/detail.php?deviceCategory=vsanio&productid=34853&deviceCategory=vsanio&details=1&vsan_type=vsanio&io_partner=23&io_releases=274&page=1&display_interval=10&sortColumn=Partner&sortOrder=AsFD332-PERChttps://www.vmware.com/resources/compatibility/detail.php?deviceCategory=vsanio&productid=38055&deviceCategory=vsanio&details=1&vsan_type=vsanio&io_partner=23&io_releases=274&keyword=FD332-PERC&page=1&display_interval=10&sortColumn=Partner&sortOrder=As Примечание: Чтобы использовать драйвер megaraid_perc9 в ESXi 5.5, необходимо отключить lsi_mr3 только в ESXi 5.5 и, возможно, драйвер megaraid_sas. Чтобы отключить эти драйверы только в ESXi 5.5: Примечание: Для выполнения этой операции требуется перезагрузка хоста ESXi. При перезагрузке убедитесь, что выбран соответствующий режим обслуживания vSAN. Для получения информации о режиме обслуживания vSAN Войдите на хост ESXi с помощью SSH или консоли. Отключите драйвер lsi_mr3, выполнив следующую команду: esxcli system module set --enabled=false --module=lsi_mr3 Перезагрузите хост ESXi. После перезагрузки определите драйвер, используемый контроллером PERC. Если используется драйвер megaraid_sas вместо megaraid_perc9, отключите драйвер megaraid_sas, чтобы заставить систему использовать соответствующий драйвер. Чтобы отключить драйвер megaraid_sas, выполните следующую команду:esxcli system module set --enabled=false --module=megaraid_sas Если вы отключили драйвер megaraid_sas на шаге 4, перезагрузите хост ESXi второй раз. Если рекомендации не выполняются, то в кластере vSAN может произойти сбой с непредвиденным сбоем диска. В среде vSAN может проявляться одно или несколько вариантов поведения: При загрузке vSAN отображается состояние vSAN Unhealthy (Нездоровый): Могут инициироваться аварийные сигналы, связанные с задержкой. В файле ESXi host/var/log/vmkernel.log отображаются следующие записи: WARNING: lsi_mr3: fusionReset:2565: megaraid_sas: Hardware critical error, returning FAILED. WARNING: ScsiPath: 7133: Set retry timeout for failed TaskMgmt abort for CmdSN 0x0, status Failure, path vmhba0:C0:T0:L0
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59