簡體   English   中英

RestSharp 內容響應返回錯誤的 json 格式

[英]RestSharp content response returning bad json format

我正在使用 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 個 \,當我嘗試反序列化時,它會拋出一個異常,即它無法將字符串轉換為我的 model。

如何解決以這種格式返回的內容?

 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 的內容字符串化,然后再次將字符串反序列化為我想要的 model 類型時,它會起作用。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM