Php 合并2个数组并将其编码为Json将返回无效字符
我合并2个数组,以便将其编码为Json,但实际情况如下:Php 合并2个数组并将其编码为Json将返回无效字符,php,arrays,json,Php,Arrays,Json,我合并2个数组,以便将其编码为Json,但实际情况如下: {"\u0000*\u0000_id":1,"\u0000*\u0000_mapper":{},"\u0000*\u0000_avatar":"","\u0000*\u0000_name":"Name","\u0000*\u0000_surname":"Name","\u0000*\u0000_email":"something@domain.com","\u0000*\u0000_gsm":"301313","\u0000*\u0000
{"\u0000*\u0000_id":1,"\u0000*\u0000_mapper":{},"\u0000*\u0000_avatar":"","\u0000*\u0000_name":"Name","\u0000*\u0000_surname":"Name","\u0000*\u0000_email":"something@domain.com","\u0000*\u0000_gsm":"301313","\u0000*\u0000_password":"somepassword201","\u0000*\u0000_language":1,"\u0000*\u0000_phone":"","\u0000*\u0000_company":"","\u0000*\u0000_vat":"","\u0000*\u0000_registrationDate":"2015-07-07 09:55:31","\u0000*\u0000_address":8,"\u0000*\u0000_lastLogin":"2015-07-24 09:06:45","\u0000*\u0000_username":"someusername","\u0000*\u0000_salt":"12qidjoasidj8192u319ehj129dusafioj","\u0000*\u0000_hash":"","\u0000*\u0000_activated":true,"\u0000*\u0000_timeZone":0,"error":"false"}`
当我使用json\u encode()
代码:
如何解决此问题?它与合并无关。显然,您的
$user
对象包含受保护的属性,这些属性在被强制转换到数组时会出现。这两个NUL
字节以JSON格式编码为\u0000
。我这样做修复了它:
public function getuserAction() {
if ($this->checkLoggedIn()) {
$user = $this->cache->user;
$info = array('error' => 'false');
$response = $this->mergeJsons(Zend_Json::encode($info), Zend_Json::encode($user);
$this->view->jsonResponse = $response;
$this->renderScript('/appapi/showjson.phtml');
}
}
//The 'true' parameter means it's gonna create an array from the Json
private function mergeJsons($json1, $json2) {
$result = array_merge(Zend_Json::decode($json1, true), Zend_Json::decode($json2, true));
return Zend_Json::encode($result);
}
请发布
var\u dump($user)
的输出。这就是Unicode字符串在JSON中的编码方式。显然,$user
具有Unicode属性名。
public function getuserAction() {
if ($this->checkLoggedIn()) {
$user = $this->cache->user;
$info = array('error' => 'false');
$response = $this->mergeJsons(Zend_Json::encode($info), Zend_Json::encode($user);
$this->view->jsonResponse = $response;
$this->renderScript('/appapi/showjson.phtml');
}
}
//The 'true' parameter means it's gonna create an array from the Json
private function mergeJsons($json1, $json2) {
$result = array_merge(Zend_Json::decode($json1, true), Zend_Json::decode($json2, true));
return Zend_Json::encode($result);
}