【发布时间】:2025-12-29 03:50:11
【问题描述】:
我有这个读取 json 的代码。它工作正常,但我不知道如何读取caller下的子节点Name
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using Newtonsoft.Json;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("https://**url**");
myReq.Method = "GET";
myReq.Headers.Add("Authorization: Basic **Authkey**");
WebResponse response = myReq.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string json = reader.ReadToEnd();
List<Incident> Incidents = JsonConvert.DeserializeObject<List<Incident>>(json);
foreach (Incident inc in Incidents)
{
LTInc.Text += inc.number + "</br>" + inc.briefDescription + "</br>" + inc.dynamicName + "</br></br>";
}
}
public class Incident
{
public string number;
public string briefDescription;
public string request;
//public IList<string> caller;
public string dynamicName;
}
}
Json 字符串看起来像这样:
"number": "S 1901-079",
"request": "reg****",
"briefDescription": "sfdgfgfgfgfg",
"Caller":{
"ID": "1",
"Name": "TestName"
【问题讨论】:
-
如您所见,调用者是字符串列表。有两种解决方案 1 将 Caller 反序列化为对象并读取属性 Name 或者您可以通过字符串搜索字符串“Name”并获取所需的值。 IMO 反序列化会是更好的方法(C# 和东西 :))