2013-08-30 3 views
2

У меня есть следующая json закодированная функция для отображения push-уведомления для iphone ..... , но мне нужно хранить только push-уведомление в DB ... Чтобы я мог показать, что сообщение на веб-сайте, который разработан с использованием PHP .... поэтому мне нужно декодировать этот формат JSONкак декодировать сообщение 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) . '}'; 
    } 
} 
+3

Отступ с отступами отступа! –

+0

Это утверждение потребностей не вопрос. В чем дело? – allen213

+0

Я новичок в json, поэтому мне нужно это json-сообщение для декодирования –

ответ

1

Если бы я тебя, я хотел бы использовать стандартные PHP функции:

json_encode http://php.net/manual/en/function.json-encode.php

json_decode http://php.net/manual/en/function.json-decode.php

+0

Не знаете, почему это было приостановлено ... Что случилось с PHP встроен в функции и почему OP не может их использовать? – Flavio

+0

сообщение закодировано в следующем формате: {"aps": {"alert": "mounika4"}, "acme2": ["bang", "whiz"]} ... так как я могу декодировать сообщение, которое в этом формате –

0

Вы можете просто использовать функцию json_decode() php для декодирования данных json. Нет необходимости писать код для декодирования json, если php предоставляет встроенную функцию для нее.

+0

, когда я его использую, он предупреждает. Предупреждение: json_decode() ожидает, что параметр 1 будет строкой, массив указан в /home/content/69/11486669/html/timesheet-manager/class_APNS.php в строке 719 –

0

Это потому, что ваша строка json неверна. вы должны использовать '{' после '[', и вы должны определить индексы в большой скобке.

, например

json_decode ('{ "АПС": { "тревога": "mounika4"}, "acme2": [{ "0": "взрыва", "1": "свист"} ]} ');

или

json_decode ('{ "АПС": { "тревога": "mounika4"}, "acme2": { "0": "взрыва", "1": "свист"}}');

любой формат массива, который вы хотите.

Смежные вопросы