当编码为json时,有没有一种方法可以忽略php中某个类的特定类属性。
例如,在具有杰克逊库的Java中,我可以使用@JsonIgnore注释全局变量以实现此目的。有什么可比的(最好是本地的)在PHP中?
一种方法是利用JsonSerializable
接口。这使您可以创建json_encode()
在类上调用when时调用的函数。
例如:
class MyClass implements JsonSerializable{
public $var1, $var2;
function __construct($a1, $a2){
$this->var1 = $a1;
$this->var2 = $a2;
}
// From JsonSerializable
public function jsonSerialize(){
return ['var1' => $this->var1];
}
}
因此,当json_encode()
被调用时,只会var1
被编码。
$myObj = new MyClass(10, 20);
echo json_encode($myObj); // {"var1":10}
演示:https : //eval.in/103959
注意:这仅适用于PHP 5.4+
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句