我有以下json编码功能来显示iphone的推送通知..... 但我需要的是在DB中存储推送通知消息... 这样我就可以在使用php开发的网站中显示该消息.... 所以我需要解码这个json格式
private function _jsonEncode($array = false)
{
//Using json_encode if exists
if (function_exists('json_encode')) {
return json_encode($array);
}
if (is_null($array))
return 'null';
if ($array === false)
return 'false';
if ($array === true)
return 'true';
if (is_scalar($array)) {
if (is_float($array)) {
return floatval(str_replace(",", ".", strval($array)));
}
if (is_string($array)) {
static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $array) . '"';
} else
return $array;
}
$isList = true;
for ($i = 0, reset($array); $i < count($array); $i++, next($array)) {
if (key($array) !== $i) {
$isList = false;
break;
}
}
$result = array();
if ($isList) {
foreach ($array as $v)
$result[] = $this->_jsonEncode($v);
return '[' . join(',', $result) . ']';
} else {
foreach ($array as $k => $v)
$result[] = $this->_jsonEncode($k) . ':' . $this->_jsonEncode($v);
return '{' . join(',', $result) . '}';
}
}
答案 0 :(得分:1)
如果我是你,我会使用标准的PHP函数:
json_encode http://php.net/manual/en/function.json-encode.php
json_decode http://php.net/manual/en/function.json-decode.php
答案 1 :(得分:0)
你可以简单地使用php的json_decode()函数来解码json数据。如果php为其提供内置函数,则无需编写用于解码json的代码。
答案 2 :(得分:0)
这是因为你的json字符串不正确。 你应该在'['之后使用'{',你应该在大括号字符串中定义索引。
例如
json_decode( '{ “APS”:{ “警报”: “mounika4”}, “acme2”:[{ “0”: “砰”, “1”: “嗖”}]}');
或
json_decode( '{ “APS”:{ “警报”: “mounika4”}, “acme2”:{ “0”: “砰”, “1”: “嗖”}}');
你想要的任何数组格式。