namespace Symfony\Component\Serializer\Encoder;
-use Symfony\Component\Serializer\Exception\UnexpectedValueException;
+use Symfony\Component\Serializer\Exception\NotEncodableValueException;
/**
* Encodes JSON data.
class JsonEncode implements EncoderInterface
{
private $options;
- private $lastError = JSON_ERROR_NONE;
public function __construct($bitmask = 0)
{
$encodedJson = json_encode($data, $context['json_encode_options']);
- if (JSON_ERROR_NONE !== $this->lastError = json_last_error()) {
- throw new UnexpectedValueException(json_last_error_msg());
+ if (JSON_ERROR_NONE !== json_last_error() && (false === $encodedJson || !($context['json_encode_options'] & JSON_PARTIAL_OUTPUT_ON_ERROR))) {
+ throw new NotEncodableValueException(json_last_error_msg());
}
return $encodedJson;
/**
* Merge default json encode options with context.
*
- * @param array $context
- *
* @return array
*/
private function resolveContext(array $context = array())