«key 2.2» = «value 2.2»;
};
«key 3 — array» = (
{
«array item 1, key1» = value;
«array item 1, key2» = value;
},
{
«array item 2, key1» = value;
«array item 2, key2» = value;
}
);
key1 = value1;
}
Как видите, словари заключены в квадратные скобки, а массивы — в фигурные. Другие элементы представляют собой обычные пары «ключ — значение». Если бы мы попытались представить этот объект JSON в виде экземпляра NSDictionary, то у нас получился бы такой код:
NSDictionary *json = @{
@"key1": @"value1",
@"key 2 — dictionary": @{
@"key 2.1": @"value 2.1",
@"key 2.2": @"value 2.2",
},
@"key 3 — array": @[
@{
@"array item 1, key1": @"value",
@"array item 1, key2": @"value"
},
@{
@"array item 2, key1": @"value",
@"array item 2, key2": @"value"
}
]
};
Подробнее о нотации JSON вы можете почитать на сайте JSON.org. Перейдем к созданию файлов талонов. Как уже говорилось, такой файл состоит из обычной нотации JSON. Не путайте файлы талонов и сами талоны. Талон — это коллекция файлов, в которую входит и pass.json. Вся эта коллекция в целом и будет представлять собой талон с цифровой подписью, который пользователь сможет установить на своем устройстве. Файл талона «объясняет», как талон должен быть представлен на устройстве.
Файл pass.json можно создавать с помощью высокоуровневых и низкоуровневых ключей. Высокоуровневыми называются такие ключи, которые сразу же видны в основной иерархии файла pass.json. Низкоуровневые ключи являются дочерними для высокоуровневых. Не волнуйтесь, если пока это не совсем понятно. Я тоже сначала запутался в этой иерархии, но читайте дальше — и стройная картина обязательно сложится.
Начнем с создания файла pass.json в Xcode. Должен вас предупредить, что Xcode, к сожалению, не лучший инструмент для редактирования JSON. Однако это наша основная интегрированная среда разработки, так что продолжим работать в ней. Чтобы создать файл pass.json, выполните следующие шаги.
1. Создайте в Xcode простой проект для iOS, выбрав File — New — Project (Файл — Новый — Проект).
2. В левой части диалогового окна New Project (Новый проект) убедитесь, что находитесь в категории iOS. Затем выберите раздел Other (Другой), а в правой части экрана — вариант Empty (Пустой) (рис. 19.11). Сделав это, нажмите кнопку Next (Далее).
Рис. 19.11. Создание пустого проекта в iOS
3. Теперь укажите имя вашего проекта в поле Product Name (Имя продукта). Сделав это, нажмите кнопку Next (Далее). После этого можете сохранить файл на диске. Когда вы успешно выберете путь для сохранения проекта, появится возможность создать файл pass.json.
4. В новом пустом проекте в Xcode выберите File — New — File (Файл — Новый — Файл).
5. В диалоговом окне New File (Новый файл), будучи в категории iOS, выберите вариант Other (Другой). Справа выберите вариант Empty (Пустой) (рис. 19.12). Сделав это, нажмите кнопку Next (Далее).
Рис. 19.12. Добавление пустого файла в проект
6. После того как вы нажмете кнопку Next (Далее), вам будет предложено сохранить файл на диске. Убедитесь, что сохраняете его как pass.json. Справившись с этим, нажмите кнопку Create (Создать), и файл будет добавлен на диск в рамках вашего проекта.
Отлично, вот вы и создали файл pass.json на диске. Теперь нужно заполнить этот файл ключами и значениями. Прежде чем мы подробно поговорим о ключах и значениях, детально разберем, какая информация находится в файле талона:
{
«formatVersion»: 1,
«passTypeIdentifier»: «<# Put your Pass Type ID here #>»,
«serialNumber»: «p69f2J»,
«teamIdentifier»: «<# Put your team ID here #>»,
«description»: «Train Ticket Example»,
«locations»: [
{
«longitude»: -0.1 70867,
«latitude»: 50.8 34948
}
],
«barcode»: {
«message»: «12345 67890»,
«format»: «PKBarcodeFormatPDF417»,
«messageEncoding»: «iso-8859-1»
},
«organizationName»: «O'Reilly Railways»,
«logoText»: «O'Reilly Railways»,
«foregroundColor»: «rgb(255, 255, 255)»,
«backgroundColor»: «rgb(100, 100, 100)»,
«boardingPass»: {
«transitType»: «PKTransitTypeTrain»,
«primaryFields»: [
{
«key»: «departure»,