Я хочу десериализовать BLOB-объект в пользовательский объект.
Из BLOB-объекта я получаю byte[]
, конвертирую в string
, а затем, используя JSON.Net
, десериализую в object
.
public object FromByteArray(Type type, byte[] value)
{
return JsonConvert.DeserializeObject(Encoding.UTF8.GetString(value), type);
}
Но иногда в одном из свойств есть капли со специальными символами.
"LogoUrl":"�PNG\r\n\u001a\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u00002\u0000\u0000\u00002\b\u0003\u0000\u0000\u0000)�x�\u0000\u0000\u0001,PLTE������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������8�\u0000\u0000\u0001�IDATx^�e��0\u0010��i\u000b�����������%ò�!o�����>\t�ӜC��R�8\"R��I>2;5���+����\u0012=�(\u0010�ݱ�EDi\u0012C��\u0003����(\u001a�\u001a��_)\"�vTZ)���z`d\n��\u0010�qO�8�`\\&��ao�U��s\u0012�d\f�0�\u0018�\ty��(L�(���͞\u001c�\u0006[X���1*>a85�\u001d��T�u\u0000��n���0�F�����!xTZT\rU��\t���5��jxM�,�$\u001aۨ���\u0016U�%�*����\u0015�\u0000��7T\u0014�Y\u001a��\u000e���a�\u001c��)�oGB���\u0019ξ�(�c4|&�%�V��g\t��\u0004�4]�\f6ض��\"Fp!jYt�$d�?�ȥ9�pIi�Gh�aE[��;0����Q,C�?\u0003~\u000b,��,��?�J���M[��Nm\u0011�Ky\f��h�c�=D�D%\u0002���>��\"\tow!\u0004S���?��\u0006rI\u0003\u0011n��J�T��#����D�@\u0001��+�' �L\u0012F\u0003\u0004\tA�\u0007r�\bw&cm�\u0001�b\u001f��qi\u0000\u0000\u0000\u0000IEND�B`�"
Как я понимаю, его нельзя десериализовать по умолчанию. Я пытался добавить JsonSerializerSettings
с параметром StringEscapeHandling.EscapeNonAscii
, но это не помогло решить эту проблему.
Есть ли другой способ ее решения?
Пробовал также десериализовать строку для второговремя, это помогает получить объект, но не кажется, что это правильный путь.