PHP的JSON缺少一些性能
问题描述:
我有一个PHP类,当我json_encode
文件,我没有得到总计,小计在JSON字符串,我怎么能做到这一点,PHP的JSON缺少一些性能
class sale{
public $Customer;
public $DiscountRate;
public $TaxRate;
public $SaleItems;
public function Total()
{
// ....
}
public function Subtotal()
{
// ....
}
}
答
您可以申请JsonSerializable
接口到您的班级并实施jsonSerialize()
方法。此方法的返回值将用作json_encode()
函数的输入。
class Sale implements JsonSerializable {
public $customer;
public function total() {
return 40;
}
public function jsonSerialize() {
return [
'customer' => $this->customer,
'total' => $this->total()
];
}
}
+0
请问你能帮助一个例子吗? – Smith
+0
@史密斯编辑添加一个例子。 –
JSON enccoding编码实例的__properties__,而不是__methods __....你真的希望json_encode,自动将转换PHP代码(及其所有可能依赖性,数据库访问等),以JavaScript代码? –
不,但我需要总和小计的编码值,所以我如何实现这个 – Smith
正如约翰在他的回答中所建议的[JsonSerializable](http://php.net/manual/en/class.jsonserializable.php )并将这两个调用的结果作为附加属性添加 –