PHP 利用JsonSerializable接口實現自定義json編碼

JsonSerializable接口php

原型:html

JsonSerializable {html5

/* 方法 */json

abstract public mixed jsonSerialize ( void )小程序

}
 app

ps: 簡單說一下這個東西。很簡單,目的主要是在json序列化對象的時候彌補一下json編碼的弱點。yii

咱們都知道在類的序列化時候 一般 利用Serialize函數,由於它可以保存更多的信息,固然是你須要他保存不少信息的前提下。可是json編碼在這方面欠缺不少。他只能保存類的公共屬性。那麼 這個時候咱們就須要一個東西來彌補一下欠缺。函數

如何來作。請看實例:this

<?php
class test implements JsonSerializable
{
    private $b;

    public function __construct($b)
    {
        $this->b=$b;
    } 


    public function jsonSerialize()
    {
        return 'b:'.$this->b;
    }
}

$test=new test(1);
echo json_encode($test).PHP_EOL;

看看結果:編碼

localhost:test yehua$ php serialize.php
"b:1"

總結一下

目前不少前段,app、html五、小程序客戶端須要的json字符串,可能大大小小存在不一樣點,若是採用統一的json編碼格式傳遞數據。會顯得很呆板,經過該函數來自定義內容,適當增長了一部分的靈活性

相關文章
相關標籤/搜索