public static function jsonDecode($json, $assoc = false)
    {
        $data = \json_decode($json, $assoc);
        if (JSON_ERROR_NONE !== json_last_error()) {
            $last = json_last_error();
            throw new \InvalidArgumentException(
                'Unable to parse JSON data: '
                . (isset(self::$jsonErrors[$last])
                    ? self::$jsonErrors[$last]
                    : 'Unknown error')
            );
        }
        return $data;
    }