У меня есть простой класс со следующим свойством:
[JsonObject(MemberSerialization.OptIn)]
public class Person
{
...
[JsonProperty(PropertyName = "Photograph"]
public byte[] Photograph { get; set; }
...
}
, но это не работает, когда я заполняю свойство Photograph с изображением и передать по http. Это может показаться простым вопросом, но я еще не нашел решения после нескольких часов онлайн-поиска, но как мне сериализовать / десериализовать массив байтов в Json.NET? Какие теги атрибутов мне нужны, или я должен сделать это по-другому? Большое спасибо!
public static T Deserialize<T>(byte[] data) where T : class
{
using (var stream = new MemoryStream(data))
using (var reader = new StreamReader(stream, Encoding.UTF8))
return JsonSerializer.Create().Deserialize(reader, typeof(T)) as T;
}
Если вы используете LINQ to JSON , вы можете сделать это:
JObject.Parse(Encoding.UTF8.GetString(data));
Результат будет динамическим JObject
.
Хотя это может быть не совсем то, что ОП хотел сделать, он может пригодиться другим, желающим десериализовать byte[]
, которые сталкиваются с этим вопросом.