我可以httpClient.PostAsJsonAsync(路径,内容)很好。
但是,这篇文章会返回一些JSON,其中包含响应的详细信息,例如: { “的StatusCode”:200, “AccessCode”: “92BEEB285ZB47DA”, “InternalMessage”:空}
我需要访问AccessCode。
如何干净有效地完成这项工作?我可以创建这样的对象:
public class GIResponse
{
public string StatusCode { get; set; }
public string AccessCode { get; set; }
public string InternalMessage { get; set; }
}
并将其映射到结果?
或者我将如何遍历JSON并拔出AccessCode? p>
我进行了相当广泛的搜索,但令人惊讶的是我在Google上找不到任何内容 - 也许这是因为这是Post的结果,而不是Get。
我该怎么做?
答案 0 :(得分:0)
如果您使用responseText
获得httpResponse.Content.ReadAsStringAsync
,则可以使用Json.NET的JObject
并将其定义为动态:
dynamic j = JObject.Parse(@"{""StatusCode"":200,""AccessCode"":""92BEEB285ZB47DA"",""InternalMessage"":null}");
Console.WriteLine(j.AccessCode);
您也可以使用JsonConvert
:
var result = JsonConvert.Deserialize<MyModel>(resposeText);
显然,如果您已经有一个模型,则不要将其作为字符串阅读,您只需将其作为模型阅读:
var result = httpResponse.Content.ReadAsAsync<MyModel>();