JsonUtility.php in Feeds extensible parsers 8
File
src/Utility/JsonUtility.php
View source
<?php
namespace Drupal\feeds_ex\Utility;
use Drupal\Component\Serialization\Json;
use Drupal\Core\StringTranslation\StringTranslationTrait;
class JsonUtility {
use StringTranslationTrait;
public function translateError($error) {
switch ($error) {
case JSON_ERROR_RECURSION:
return 'One or more recursive references in the value to be encoded';
case JSON_ERROR_INF_OR_NAN:
return 'One or more NAN or INF values in the value to be encoded';
case JSON_ERROR_UNSUPPORTED_TYPE:
return 'A value of a type that cannot be encoded was given';
case JSON_ERROR_UTF8:
return 'Malformed UTF-8 characters, possibly incorrectly encoded';
case JSON_ERROR_NONE:
return 'No error has occurred';
case JSON_ERROR_DEPTH:
return 'The maximum stack depth has been exceeded';
case JSON_ERROR_STATE_MISMATCH:
return 'Invalid or malformed JSON';
case JSON_ERROR_CTRL_CHAR:
return 'Control character error, possibly incorrectly encoded';
case JSON_ERROR_SYNTAX:
return 'Syntax error';
default:
return 'Unknown error';
}
}
public function decodeJsonArray($json) {
$parsed = Json::decode($json);
if (!is_array($parsed)) {
throw new \RuntimeException($this
->t('The JSON is invalid.'));
}
return $parsed;
}
public function decodeJsonObject($json) {
$parsed = json_decode($json, FALSE);
if (!is_array($parsed) && !is_object($parsed)) {
throw new \RuntimeException($this
->t('The JSON is invalid.'));
}
return $parsed;
}
}