客户端侧接收正式JSON内容"{\"Id\":[1,2,3],\"Size\":56}"
,而是要反序列化到错误的字节数组。
发生在下面的语句1个错误
IRestResponse<key> response = client.Execute<key>(request);
2错误消息是“该对象定义无参数的构造函数。”
3在客户机尺寸的对象类是相同的,因为它是在服务器侧:
public class key
{
public byte[] id { get; set; }
public int Size { set; get; }
}
4我已经试过路过,通过JSON格式包含字符串和整数对象,这一切很好,但字节数组。
JsonDeserializer从RestSharp无法反序列化阵列。 代替的byte[]
使用List<byte>
。 欲了解更多信息,请参阅https://github.com/restsharp/RestSharp/wiki/Deserialization
我遇到了这个问题,太。 我的解决方案是使用RestSharp执行原始执行和使用Json.NET反序列化的结果:
var response = client.Execute(request);
var keyResponse = JsonConvert.DeserializeObject<key>(response.Content);
keyResponse现在应该是从JSON反序列化内容的键类的一个实例。
除了克里斯·霍根的答复,我想指出的是,我得到这个错误时RestSharp不当使用默认的序列,而不是我指派了自定义的串行JSON.NET。
这样做的原因是,我添加了内容类型处理器application/json
而API我正在从返回的内容作为响应text/json
。
因此,通过改变AddHandler
调用AddHandler("text/json", jsonDeserializer)
我解决了这个问题。
文章来源: RestSharp deserialize JSON content(represent an object contains an byte array) error