Jsonnet — это язык программирования, который используется для работы с данными в формате JSON. В этом языке есть как базовые функции, так и мощная объектная модель. Примеры, которые приводятся в этом руководстве, связаны с миром коктейлей. Они призваны развлечь читателя и показать, что Jsonnet можно применять в самых разных областях.
Обратите внимание, что при работе с JSON в Jsonnet происходит простое изменение порядка полей объекта. Это соответствует стандартам JSON, поскольку если порядок имеет значение, то вместо объекта следует использовать массив пар ключ-значение. Кроме того, изменение порядка ключей позволяет сравнивать выходные данные с помощью команды diff. Однако на этой странице выходные данные были вручную переставлены для удобства визуального сравнения с входными данными. Также было изменено форматирование выходных данных, чтобы они лучше смотрелись на странице. Поэтому при самостоятельном запуске примеров результаты могут отличаться (но быть эквивалентными).
Для получения дополнительной информации о Jsonnet посетите следующие страницы:
Пакет pecl для установки Jsonnet находится по адресу: http://pecl.php.net/package/jsonnet.
Чтобы установить Jsonnet, выполните следующие действия:
pecl install jsonnet
или:
wget -O Jsonnet.Latest.tar.gz https://pecl.php.net/get/jsonnet
mkdir Jsonnet-PHP && tar -xzvf Jsonnet.Latest.tar.gz -C ./Jsonnet-PHP
cd Jsonnet-PHP/Jsonnet-1.0.0
phpize
./configure
make && make install
{
cocktails: {
// Ingredient quantities are in fluid ounces.
"Tom Collins": {
ingredients: [
{ kind: "Farmers Gin", qty: 1.5 },
{ kind: "Lemon", qty: 1 },
{ kind: "Simple Syrup", qty: 0.5 },
{ kind: "Soda", qty: 2 },
{ kind: "Angostura", qty: "dash" },
],
garnish: "Maraschino Cherry",
served: "Tall",
},
Manhattan: {
ingredients: [
{ kind: "Rye", qty: 2.5 },
{ kind: "Sweet Red Vermouth", qty: 1 },
{ kind: "Angostura", qty: "dash" },
],
garnish: "Maraschino Cherry",
served: "Straight Up",
}
}
}
{
"cocktails": {
"Tom Collins": {
"ingredients": [
{ "kind": "Farmers Gin", "qty": 1.5 },
{ "kind": "Lemon", "qty": 1 },
{ "kind": "Simple Syrup", "qty": 0.5 },
{ "kind": "Soda", "qty": 2 },
{ "kind": "Angostura", "qty": "dash" }
],
"garnish": "Maraschino Cherry",
"served": "Tall"
},
"Manhattan": {
"ingredients": [
{ "kind": "Rye", "qty": 2.5 },
{ "kind": "Sweet Red Vermouth", "qty": 1 },
{ "kind": "Angostura", "qty": "dash" }
],
"garnish": "Maraschino Cherry",
"served": "Straight Up"
}
}
}
Jsonnet::evaluateFile('bar_menu.1.jsonnet');
$Snippet = '
{
cocktails: {
// Ingredient quantities are in fluid ounces.
"Tom Collins": {
ingredients: [
{ kind: "Farmers Gin", qty: 1.5 },
{ kind: "Lemon", qty: 1 },
{ kind: "Simple Syrup", qty: 0.5 },
{ kind: "Soda", qty: 2 },
{ kind: "Angostura", qty: "dash" },
],
garnish: "Maraschino Cherry",
served: "Tall",
},
Manhattan: {
ingredients: [
{ kind: "Rye", qty: 2.5 },
{ kind: "Sweet Red Vermouth", qty: 1 },
{ kind: "Angostura", qty: "dash" },
],
garnish: "Maraschino Cherry",
served: "Straight Up",
}
}
}';
var_dump(Jsonnet::evaluateSnippet($Snippet));
``` **Расширение**
[<persistent> расширение #40 Jsonnet версия v1.3.1] {
- Константы [2] {
Константа [строка JSONNET_PHP_VERSION] {v1.3.1}
Константа [строка JSONNET_PHP_AUTHOR] {Chitao.Gao [neeke@php.net]}
}
- Функции {
Функция [<internal:Jsonnet> функция jsonnet_get_version] {}
Функция [<internal:Jsonnet> функция jsonnet_get_author] {}
}
- Классы [1] {
Класс [<internal:Jsonnet> класс Jsonnet] {
- Константы [0] {}
- Статические свойства [0] {}
- Статические методы [4] {
Метод [<internal:Jsonnet> статический публичный метод evaluateFile] {
- Параметры [1] {
Параметр #0 [<required> $file_path]
}
}
Метод [<internal:Jsonnet> статический публичный метод evaluateSnippet] {
- Параметры [1] {
Параметр #0 [<required> $snippet_string]
}
}
Метод [<internal:Jsonnet> статический публичный метод fmtFile] {
- Параметры [1] {
Параметр #0 [<required> $file_path]
}
}
Метод [<internal:Jsonnet> статический публичный метод fmtSnippet] {
- Параметры [1] {
Параметр #0 [<required> $snippet_string]
}
}
}
- Свойства [0] {}
- Методы [2] {
Метод [<internal:Jsonnet, ctor> публичный метод __construct] {}
Метод [<internal:Jsonnet, dtor> публичный метод __destruct] {}
}
}
}
}
**CodeTips**
```php
<?php
/**
* @author neeke@php.net
* Date: 18/3/29 下午7:51
*/
const JSONNET_PHP_VERSION = 'v1.3.0';
const JSONNET_PHP_AUTHOR = 'neeke@php.net';
const CODE_SUCCESS = 1000;
const CODE_ERROR = 900;
/**
* @return string
*/
function jsonnet_get_version() {
return JSONNET_PHP_VERSION;
}
function jsonnet_get_author() {
return JSONNET_PHP_AUTHOR;
}
class Jsonnet {
public function __construct() {
#Jsonnet init
}
public function __destruct() {
#Jsonnet destroy
}
/**
* @param $file_path
*
* @return array
* @throws Exception
*/
static public function evaluateFile($file_path) {
throw new Exception('Jsonnet::evaluateFile #error', CODE_ERROR);
return array();
}
/**
* @param $snippet_string
*
* @return array
* @throws Exception
*/
static public function evaluateSnippet($snippet_string) {
throw new Exception('Jsonnet::evaluateSnippet #error', CODE_ERROR);
return array();
}
/**
* @param $file_path
*
* @return array
* @throws Exception
*/
static public function fmtFile($file_path) {
throw new Exception('Jsonnet::fmtFile #error', CODE_ERROR);
return array();
}
/**
* @param $snippet_string
*
* @return array
* @throws Exception
*/
static public function fmtSnippet($snippet_string) {
throw new Exception('Jsonnet::fmtSnippet #error', CODE_ERROR);
return array();
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )