Массив байтов в моем объекте преобразуется в строку при сериализации с использованием JSON. Из-за этого я получаю Ожидаемый BEGIN_ARRAY, но было сообщение STRING , когда я отправляю JSON клиенту, который использует retrofit2
Я пытался использовать доступные методы сериализации JSON.Net, все, что я получаю с байтомсериализация массива представляет собой строку
JToken.FromObject (книга);
JsonConvert.SerializeObject (книга);
MyPOCO (C #)
public class Book
{
public string bookCode { get; set; }
public byte[] bookThumbnail { get; set; }
public byte[] data { get; set; }
public bool active { get; set; }
}
Пример кода
Book book = new Book()
{
bookCode = "0001",
bookThumbnail = Encoding.UTF8.GetBytes("sample data data")
data = Encoding.UTF8.GetBytes("some book content"),
active = true
};
JToken.FromObject(book); //the output of the byte array is string
JsonConvert.SerializeObject(book); //the output of the byte array is string
Ожидаемый формат результата JSON:
{
"bookCode": "0001",
"bookThumbnail": [],
"data": []
}
и NOT
{
"bookCode": "0001",
"bookThumbnail": "",
"data": ""
}