RestSharp反序列化JSON内容(表示一个对象包含一个字节数组)错误

Yan*_*han 19 json bytearray restsharp deserialization

客户端接收正式的JSON内容"{\"Id\":[1,2,3],\"Size\":56}",但在反序列化字节数组时出错.

1以下语句中出现错误

IRestResponse<key> response = client.Execute<key>(request);
Run Code Online (Sandbox Code Playgroud)

2错误消息是"没有为此对象定义无参数构造函数".

3客户端大小的对象类与服务器端的对象类相同:

public class key
{
    public byte[] id { get; set; }
    public int Size { set; get; }
}
Run Code Online (Sandbox Code Playgroud)

4我尝试通过JSON格式传递包含字符串和整数的对象,这一切都很好但是字节数组.

小智 44

RestSharp中的JsonDeserializer无法反序列化数组.而不是byte[]使用List<byte>.有关更多信息,请参阅https://github.com/restsharp/RestSharp/wiki/Deserialization

  • 这也发生在我身上,我终于发现我在我的一个班级中留下了一个讨厌的字符串数组。将其更改为 List&lt;string&gt; 立即解决了问题,并且所有测试都开始通过。 (2认同)

Chr*_*gan 25

我也遇到过这个问题.我的解决方案是使用RestSharp执行原始执行并使用Json.NET反序列化结果:

var response = client.Execute(request);
var keyResponse = JsonConvert.DeserializeObject<key>(response.Content);
Run Code Online (Sandbox Code Playgroud)

keyResponse现在应该是从JSON内容反序列化的密钥类的实例.