RestSharp内容响应返回错误的json格式

问题描述

我正在使用RestSharp库向WebApi发出请求。 这就是我的做法:

var client = new RestClient(url);
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type","application/json");
request.AddHeader("Authorization",autentication);
RestSharp.IRestResponse response = client.Execute(request);

到这里为止,效果很好。我遇到的问题是响应的内容正在像这样返回:

string jsonObject2 = "\"{\\\"status\\\":\\\"success\\\",\\\"entities\\\":[{\\\"bank_code\\\":2,\\\"name\\\":\\\"BANK 02\\\"},{\\\"bank_code\\\":3,\\\"name\\\":\\\"BANCK 03\\\"},{\\\"bank_code\\\":4,\\\"name\\\":\\\"BANCK 04\\\"}]}\"";

response.content增加了2个\,当我尝试反序列化时,它引发了一个异常,即无法将字符串转换为我的模型。

我如何确定内容以这种格式返回?

 string jsonObject = "{\"status\":\"success\",\"entities\":[{\"bank_code\":2,\"name\":\"BANK 02\"},{\"bank_code\":3,\"name\":\"BANK 03\"},{\"bank_code\":4,\"name\":\"BANK 04\"}]}";

由于正确的字符串json格式,我可以反序列化此格式。

解决方法

当我反序列化返回API的内容,然后再次将字符串反序列化为我想要的模型类型时,它将起作用。

 string jsonData = JsonConvert.DeserializeObject<string>(restResponse.Content);
 EntidadResponse data = JsonConvert.DeserializeObject<EntidadResponse>(jsonData);
,
string result = string.Empty;
using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
                        {
                            result = await reader.ReadToEndAsync();
                        }
return Content(result,"application/json");