alexsuperstar / jsonmaker
此包的最新版本(1.5.0)没有可用的许可信息。
PHP JSON Maker
1.5.0
2023-08-10 07:45 UTC
Requires
- php: >=7.4.0
This package is not auto-updated.
Last update: 2024-09-19 13:23:19 UTC
README
轻松创建 JSON
用其他语言阅读此内容:英文。
PHP 类,用于创建和修改文本字符串,格式为 JSON
安装
composer require alexsuperstar/jsonmaker
创建 JSON
$a = new \alexstar\JsonMaker(); $cc='xyz'; $a->{$cc}->bbb->cccc[0]->xxx=5; $a->{$cc}->zz='qq'; $a->xyz->zf='qq'; $a->xx->zz='qq'; # Устанавливаем значение по пути $a('/zz/name','AlexStar'); $a('/zz/groups',['Admin'])[1]="Super user"; $a('/zz/address',['City'=>"Moscow"])->Streen="Bulvar"; # запрос значения, вернет объект JsonMaker или null $street=$a('/zz/address/City');// Moscow $group0=$a('/zz/groups/0');// Admin $group1=$a('/zz/groups/1');// Super user var_dump($a('/zz/not_set')); // return null $a('/zz')->groups[0]; //Admin
结果
{"xyz":{"bbb":{"cccc":[{"xxx":5}]},"zz":"qq","zf":"qq"},"xx":{"zz":"qq"},"zz":{"name":"AlexStar","groups":["Admin","Super user"],"address":{"City":"Moscow","Streen":"Bulvar"}}}
编辑 JSON
原始 JSON
{
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}
PHP 代码
<?php $loader = require_once __DIR__ . '/vendor/autoload.php'; $json = new \alexstar\JsonMaker('{"firstName":"Иван","lastName":"Иванов","address":{"streetAddress":"Московское ш., 101, кв.101","city":"Ленинград","postalCode":101101},"phoneNumbers":["812 123-1234","916 123-4567"]}'); $json->firstName='Алексей'; $dom='дом'; $json->address->{$dom}=6; $json->address->code[]='123'; $json->address->code[]='456'; $json->phoneNumbers[2]='+7(123)1233-45-67'; unset($json->address->city,$json->phoneNumbers[0]); echo $json; echo 'code count: ',count($json->address->code);
结果
{
"firstName": "Алексей",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"postalCode": 101101,
"дом": 6,
"code": [
"123",
"456"
]
},
"phoneNumbers": {
"1": "916 123-4567",
"2": "+7(123)1233-45-67"
}
}
code count: 2