问题
一旦我收到响应并尝试存储它,该对象将为空,并且我收到此错误:
未将对象引用设置为对象的实例。
代码
var result = await response.Content.ReadAsStringAsync();
var jsonResult = JsonConvert.DeserializeObject<dynamic>(result);
var value = (JToken)jsonResult.value;
图片
最佳答案
在尝试 (JToken)jsonResult.value 之前尝试检查 jsonResult != null
[编辑]
你可以使用 var value = (JToken)jsonResult;末尾不需要 .value。
var result = "{ \"id\": \"/apis/574c167dcd7c3216c8c633b3\", \"name\": \"Servicedesk and Operations\", \"description\": \"Servicedesk and Operations Internal API\", \"serviceUrl\": \"dev-endpoint.com\", \"path\": \"test\", \"protocols\": [ \"http\", \"https\" ], \"authenticationSettings\": { \"oAuth2\": null, \"openid\": null }, \"subscriptionKeyParameterNames\": { \"header\": \"Ocp-Apim-Subscription-Key\", \"query\": \"subscription-key\" } }";
var jsonResult = JsonConvert.DeserializeObject<dynamic>(result);
var value = (JToken)jsonResult;
var id = value["id"].ToString();
[额外编辑]
或者你可以选择
var id2 = jsonResult.id;
因为你在那里有活力
关于c# - 获取 api 响应时出错对象引用未设置为对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39873412/