code: public static function decodeJson($json, $returnAssoc = false)
      {
          if (function_exists('json_decode') && function_exists('json_last_error')) {
              $native = json_decode($json, $returnAssoc);
              $error = json_last_error();
              if ($error !== JSON_ERROR_NONE) {
                  $message = function_exists('json_last_error_msg') ? json_last_error_msg() : 'error code: ' . $error;
                  throw new RuntimeException($message, $error);
              }
  
              return $native;
          }
  
          // オートローダーを働かせて定数を定義させる。
          class_exists('Services_JSON');
  
          $options = $returnAssoc ? SERVICES_JSON_LOOSE_TYPE : 0;
          $decoder = new Services_JSON($options);
          $native = $decoder->decode($json);
          if (Services_JSON::isError($json)) {
              throw new RuntimeException($native->toString(), $native->getCode());
          }
  
          return $native;
      }
docs: JSON 形式の文字列を値に変換します。
  
  @param string $json
  @param bool $returnAssoc
  @throws RuntimeException
  @return mixed