在JSON对象中包含字节数组字段时出错

本文关键字:数组 字段 出错 字节数 字节 JSON 对象 包含 | 更新日期: 2023-09-27 18:22:37

我有这个类对象:

public class Gallery
{
    public int Id { get; set; }
    public bool IsUploaded { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public byte[] Image;
    public string JobRef { get; set; }
}

我创建了它的一个实例,并使用Newton JSON:对其进行序列化

var json = JsonConvert.SerializeObject('the object');

然后,我将这段时间转换为一个字节数组,并将其发送到另一台电脑上的监听套接字:

byte[] byteArray = Encoding.UTF8.GetBytes(json);
using (NetworkStream serverStream = clientSocket.GetStream())
{
    serverStream.Write(byteArray, 0, byteArray.Length);
   //more code here but not relevant as the error happens on listening PC
}

在我的监听PC上,我收到json如下:

using (IInputStream input = args.Socket.InputStream)
{
    byte[] data = new byte[BufferSize];
    IBuffer buffer = data.AsBuffer();
    uint dataRead = BufferSize;
    while (dataRead == BufferSize)
    {
        await input.ReadAsync(buffer, BufferSize, InputStreamOptions.Partial);
        request.Append(Encoding.UTF8.GetString(data, 0, data.Length));
        dataRead = buffer.Length;
    }
}
var job = JsonConvert.DeserializeObject<Gallery>(request.ToString());

在最后一行,我得到了错误:

Additional text encountered after finished reading JSON content: r. Path '', line 34, position 2.

然而,如果我删除字节数组映像,就不会出现错误。那么,有没有一种特定的方法可以将图像数组包含在json对象中呢?

感谢

在JSON对象中包含字节数组字段时出错

Json不支持字节数组。您需要将其转换为Base64。看看这个线程,也看看这个线程。