C# RestSharp内容响应返回错误的json格式
我正在使用RestSharp库向WebApi发出请求。 我就是这样做的:C# RestSharp内容响应返回错误的json格式,c#,json,asp.net-core-webapi,restsharp,C#,Json,Asp.net Core Webapi,Restsharp,我正在使用RestSharp库向WebApi发出请求。 我就是这样做的: var client = new RestClient(url); var request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "application/json"); request.AddHeader("Authorization", autentication);
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 jsonData=JsonConvert.DeserializeObject(restResponse.Content);
EntidadResponse data=JsonConvert.DeserializeObject(jsonData);
您的API似乎没有返回JSON,而是一个转义字符串。该API是您自己的吗?该API是一个现有的项目,当我在POSTMAN中测试时,它工作正常。所谓正常,您的意思是您收到“{\”status\”:\“success\”,\“entities\”:[{{“bank\”code\”:2,\“name\”:“bank 02\”},{“bank\”code\”:3,{“bank\\”name\:“bank 03\”,{“bank\”bank\\”,{“bank\\”bank\\”:4,\\“name\:“bank\\”:“bank\\”}},
?因为这不是JSON,无法正确反序列化。但在使用JsonConvert.DeserializeObject进行反序列化时起作用。仅当内容的字符串中还有两个斜杠时才有效,如“\\\”请尝试使用“return content(result,“application/json”);”作为返回类型。
string result = string.Empty;
using (var reader = new StreamReader(await responseContent.ReadAsStreamAsync()))
{
result = await reader.ReadToEndAsync();
}
return Content(result, "application/json");