c# - 如何在 C# 中访问 Json(这是 HttpMessage 的结果)?
问题描述
我正在 .NET 中编写两个应用程序(Web API)。从应用程序 AI 想要使用 Http 请求调用应用程序 B 的控制器中的方法。这里
using (var askPensionerDetails = new HttpClient())
{
double pensionToDisburse = 0;
askPensionerDetails.BaseAddress = new Uri("http://localhost:55345/api/pensionerdetails/");
var responseTask = askPensionerDetails.GetAsync("getById?pan=" + inputOfPensioner.PAN);
responseTask.Wait();
var result =responseTask.Result ;
if (result.IsSuccessStatusCode)
{
var readTask = result.Content.ReadFromJsonAsync<object>();
readTask.Wait();
return Ok(readTask.Result);
}
}
邮递员的输出是
{
"name": "bunk seenu",
"dateOfBirth": "1990-01-02T00:00:00",
"pan": "ABCD12351E",
"salaryEarned": 45000,
"allowances": 500,
"pensionType": 1,
"bankDetails": {
"bankName": "SBI",
"accountNumber": "SBI00001BS",
"bankType": 0
}
}
那是一个理想的输出。但问题是如何访问诸如银行详细信息、姓名、潘、薪水等属性。
我曾尝试使用 readTask.Result["name"] 但它抛出错误。
我也尝试过使用result.Content.ReadAsStringASync(); 但是邮递员的输出是
{
"name": [],
"dateOfBirth": [],
"pan": [],
"salaryEarned": [],
"allowances": [],
"pensionType": [],
"bankDetails": [
[
[]
],
[
[]
],
[
[]
]
]
}
对于语句 readTask = result.Content.ReadFromJsonAsync();,我没有与 Json 的结果类型关联的类;(根据设计约束)。
解决方案
您可以使用 Newtonsoft.Json
JObject jo = JObject.Parse(readTask.Result);
var name = jo["name"];
if(string.IsNnullOrEmpty(name)){
///some code
}
推荐阅读
- clamav - Clamav:通过 tcp 调用时的 clamd 响应
- flutter - flutter 底部溢出 271 像素的 RenderFlex
- server - cpanel 503服务不可用如何解决?
- javascript - Unstop 复选框播放列表
- javascript - javascript 显示 " 而不是双引号
- swift - Xcode 不允许我在可选项上使用 `@ObservedObject`
- css - react-native modal 不占用设备的全屏
- python - CSV:替代python中的excel“IF”语句。阅读列并使用 numpy.where 或其他功能创建一个新列
- list - 使用列表可重新排序的 SliverGrid
- fullcalendar - FullCalendar 调度程序 - nowIndicator 仅适用于作为 Day 的 initialView