рдпрд╣ json_encode рдФрд░ рдЙрдирдХреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд▓реЗрдЦ рд╣реИред рдХрднреА-рдХрднреА рдЬрдм рдбреЗрдЯрд╛ рдХреЛ json рдореЗрдВ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ php рдореЗрдВ json_encode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдореЗрдВ рд╡рд╣ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдо рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рддреАрди рд╕рдмрд╕реЗ рдЖрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛, рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ:
- рдЦреЗрддреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ
- рдкрд╛рда рдорд╛рди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ
- рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди
рдЦреЗрддреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ json_encode рдХреА рдкрд╣реБрдВрдЪ рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд░реНрдЧ рд╣реИ
class Example { public $publicProperty; protected $protectedProperty; private $privateProperty; public function __construct($public, $protected, $private) { $this->publicProperty = $public; $this->protectedProperty = $protected; $this->privateProperty = $private; } }
рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛:
$obj = new Example("some", "value", "here"); echo json_encode($obj);
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдореА рдЬреЛрдВрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд╖реЗрддреНрд░ рд╢рд╛рдорд┐рд▓ рдереЗред
рдпрджрд┐ рдЖрдкрдХреЛ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ?
рдирд┐рд░реНрдгрдп
Php рдХреЗ рд▓рд┐рдП <5.4:
рд╣рдореЗрдВ рдЙрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЪреБрдХреЗ рдЬреЛрдВрд╕ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░реЗрдЧреАред рдХреНрдпреЛрдВрдХрд┐ рдХрдХреНрд╖рд╛ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдЖрдк json_encode рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рд╣реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
class Example { public $publicProperty; protected $protectedProperty; private $privateProperty; public function __construct($public, $protected, $private) { $this->publicProperty = $public; $this->protectedProperty = $protected; $this->privateProperty = $private; } public function toJson() { return json_encode([ 'publicProperty' => $this->publicProperty, 'protectedProperty' => $this->protectedProperty, 'privateProperty' => $this->privateProperty, ]); } }
рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ json-a рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдм рдЖрдкрдХреЛ рд╕реАрдзреЗ json_encode рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, toJson рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
$obj = new Example("some", "value", "here"); echo $obj->toJson();
Php рдХреЗ рд▓рд┐рдП = = 5.4:
рдпрд╣ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП JsonSerializable рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬреЛ рдПрдХ jsonSerialize рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдЬреЛ json_encode рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд▓реМрдЯрд╛рдПрдЧрд╛
class Example implements JsonSerializable { public $publicProperty; protected $protectedProperty; private $privateProperty; public function __construct($public, $protected, $private) { $this->publicProperty = $public; $this->protectedProperty = $protected; $this->privateProperty = $private; } public function jsonSerialize() { return [ 'publicProperty' => $this->publicProperty, 'protectedProperty' => $this->protectedProperty, 'privateProperty' => $this->privateProperty, ]; } }
рдЕрдм рд╣рдо рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ json_encode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
$obj = new Example("some", "value", "here"); echo json_encode($obj);
рдХреНрдпреЛрдВ рдирд╣реАрдВ toJson рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ?
рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рдХрд┐ рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрд╕рди рд▓реМрдЯрд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ php> = 5.4 рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдХреНрдпреЛрдВ рди рдЗрд╕рдХрд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдпрд╛ рдЬрд╛рдП? рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
echo json_encode([ 'status' => true, 'message' => 'some message', 'data' => new Example("some", "value", "here"), ]);
рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд╕реНрддреБ рд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЬрд╕рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХрдХреНрд╖рд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ?
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк get_object_vars рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
class Example implements JsonSerializable { public $publicProperty; protected $protectedProperty; private $privateProperty; protected $someProp1; ... protected $someProp100500; public function __construct($public, $protected, $private) { $this->publicProperty = $public; $this->protectedProperty = $protected; $this->privateProperty = $private; } public function jsonSerialize() { $fields = get_object_vars($this);
рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╡рд░реНрдЧ рд╕реЗ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдЬрдм рдЖрдк рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рдПрдХ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ ( рдирд┐рдЬреА , рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛:
class Example { public $publicProperty = "someValue"; protected $protectedProperty; private $privateProperty1; private $privateProperty2; private $privateProperty3; public function __construct($privateProperty1, $privateProperty2, $privateProperty3, $protectedProperty) { $this->protectedProperty = $protectedProperty; $this->privateProperty1 = $privateProperty1; $this->privateProperty2 = $privateProperty2; $this->privateProperty3 = $privateProperty3; } } $obj = new Example("value1", 12, "21E021", false); $reflection = new ReflectionClass($obj); $public = []; foreach ($reflection->getProperties() as $property) { $property->setAccessible(true); $public[$property->getName()] = $property->getValue($obj); } echo json_encode($public);
рдкрд╛рда рдорд╛рди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ
UTF8 рдореЗрдВ рд╕рд┐рд░рд┐рд▓рд┐рдХ рдФрд░ рдЕрдиреНрдп рд╕рдВрдХреЗрдд
рджреВрд╕рд░реА рддрд░рд╣ рдХреА рдЖрдо json_encode рд╕рдорд╕реНрдпрд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЕрдХреНрд╕рд░ рдкрд╛рда рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрд╕рди рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрд╕рдореЗрдВ UTF8 (рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╕рд╣рд┐рдд) рд╡рд░реНрдг рд╣реЛрддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрди рдкрд╛рддреНрд░реЛрдВ рдХреЛ рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
echo json_encode(" or тВ│ ╞Т хЕГ я╖╝ тВи рп╣ я┐е тВ┤ я┐б р╕┐ я╝Д");
рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд╛рддреНрд░реЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - JSON_UNESCAPED_UNICODE рдзреНрд╡рдЬ рдХреЛ json_encode рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдХрд░:
echo json_encode(" or тВ│ ╞Т хЕГ я╖╝ тВи рп╣ я┐е тВ┤ я┐б р╕┐ я╝Д", JSON_UNESCAPED_UNICODE);
рдЕрдиреНрдп рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдкреНрд░рддреАрдХ
Json_encode рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХреЛ UTF8 рдореЗрдВ рддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ, рдЬреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рднрд┐рдиреНрди рд╣реЛрдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рдпрд╣ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд░рд▓ рд╣реИ)
echo json_encode(["p" => $_GET['p']]);
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдХреБрдЫ рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВрдиреЗ рднреА рдРрд╕рд╛ рд╕реЛрдЪрд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдФрд░ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдореБрдЭреЗ рдереЛрдбрд╝реА рджреЗрд░ рд▓рдЧреА рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ json_encode рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЭреВрдард╛ рдкрд╛рдпрд╛ред
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ p = % EF% F2% E8% F6% E0 (рдХреЗ рд▓рд┐рдП: localhost? =% EF% F2% E8% F8% E0 )ред
* рд╕реБрдкрд░рдЧреНрд▓реЛрдмрд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдЪрд░ $ _GET рдФрд░ $ _REQUEST рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рдХреЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВред
$decoded = urldecode("%EF%F2%E8%F6%E0"); var_dump(json_encode($decoded));
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рддреНрд░реБрдЯрд┐ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рдВрдЪрд░рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ (рдпрд╣ UTF8 рдирд╣реАрдВ рд╣реИ)ред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдорд╛рди рдХреЛ UTF8 рдореЗрдВ рд▓рд╛рдПрдВ
$decoded = urldecode("%EF%F2%E8%F6%E0"); $utf8 = utf8_encode($decoded); echo json_encode($utf8);
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдореВрд▓реНрдп
рдЕрдВрддрд┐рдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
echo json_encode(["string_float" => "3.0"]);
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, php рдПрдХ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ php рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ json рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдпрд╣ рдкреНрд░рд╛рд░реВрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред JSON_NUMERIC_CHECK рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ:
echo json_encode(["string_float" => "3.0"], JSON_NUMERIC_CHECK);
рдкрд╣рд▓реЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, "3.0" 3 рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛, рдЬрд┐рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлреНрд▓реЛрдЯ рдореЗрдВ рд╕рд╣реА рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдФрд░ рдзреНрд╡рдЬ JSON_PRESERVE_ZERO_FRACTION рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
echo json_encode(["string_float" => "3.0"], JSON_NUMERIC_CHECK | JSON_PRESERVE_ZERO_FRACTION);
рдореИрдВ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ json_encode рдФрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЪрд┐рддреНрд░рдг рдХрд░рддрд╛ рд╣реИ:
$data = [ "0000021",
рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА рдХрд┐ рдЖрдкрдХреЛ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рдирдХрд╛ рд▓реЗрдЦ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛