[英]PHP array with objects to json string
我想将包含对象数组的对象“ Resonse”转换为JSON字符串。
数据结构示例:
$response = new model_ObjectReponse();
$error1 = new model_Message('error', 'test error 1');
$error2 = new model_Message('error', 'test error 2');
$error3 = new model_Message('error', 'test error 3');
$response->add($error1);
$response->add($error2);
$response->add($error3);
$output = json_encode($response);
print $output;
消息对象具有私有属性类型,并且消息带有getter和setter方法。
那么有人知道如何将其转换为json字符串吗? 顺便说一句,我有同样的问题将其转换为XML。
谢谢您的帮助。
检查http://php.net/manual/en/function.serialize.php
该方法将允许您将对象另存为字符串。 您还可以反序列化对象,无论如何将对象存储为字符串不是一个好习惯。
您可以将Response对象转换为关联数组,然后将该数组传递给json_encode()
。 像这样:
foreach ($response->getMessages() as $message)
$responseArray['messages'][] = array(
'type' => $message->getType(),
'message' => $message->getMessage()
);
json_encode($responseArray);
对于XML转换,我编写了一个简单的类,可以将上述代码产生的$response
数组转换为DOMDocument对象或XML字符串。 您可以在这里找到它: code.google.com/p/array-to-domdocument/
您的班级定义可能是这里的问题。 如果定义了私有变量,则简单的json_encode将不会有任何可用的输出。 您可以在对象中创建函数以返回json编码的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.