Festi De/Serialization
class Block
{
#[JsonProperty("name")]
private string $name;
#[JsonProperty]
protected int $value;
public string $test;
private SubBlock $sub;
public array $alias;
}
class SubBlock
{
#[JsonProperty("name")]
private string $name;
}
$json = '{"name": "Test", "value": 5, "test": "empty", "sub":{"name": "sub"}, "alias": {"t":"test alias item"}}';
$object = Deserialize::toObject($json, Block::class);
Constructor
class BlockConstructor
{
public function __construct(protected string $test, #[JsonProperty("sub", true)] private SubBlock $block)
{
}
public function getTest()
{
return $this->test;
}
public function getSub()
{
return $this->block;
}
}
$json = '{"test": "empty", "sub":{"name": "sub"}}';
$object = Deserialize::toObject($json, BlockConstructor::class);
Method
class ValuesObjectMethods
{
private int $testId;
private SubBlock $testBlock;
#[JsonProperty("id")]
public function setID(int $id): void
{
$this->testId = $id;
}
#[JsonProperty("block")]
public function setBlock(SubBlock $block): void
{
$this->testBlock = $block;
}
public function getID(): int
{
return $this->testId;
}
public function getBlock(): SubBlock
{
return $this->testBlock;
}
}
$values = array(
'id' => 5,
'block' => array(
'name' => 'block'
)
);
$result = Deserialize::toArrayObject($values, ValuesObjectMethods::class);