Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RestSharp内容响应返回错误的json格式_C#_Json_Asp.net Core Webapi_Restsharp - Fatal编程技术网

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

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);

我正在使用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 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");