Skip to main content
 首页 » 编程设计

C#:如何解析 HttpWebResponse 对象

2024年04月30日47over140

我可以用代码和例子更好地解释这个问题。到目前为止,这是我的代码:

url = "x"; 
 
// create the request 
req = WebRequest.CreateHttp(url); 
req.ClientCertificates.Add(Program.GetCert(thumbprint)); 
result = (HttpWebResponse)req.GetResponse(); 
 
using (Stream data = result.GetResponseStream()) 
{ 
    if (data != null) 
    { 
        TextReader tr = new StreamReader(data); 
        json = tr.ReadToEnd(); 
    } 
} 
 
System.Diagnostics.Debug.WriteLine(json); 

这是代码的输出:

{ "field1":"blah","field2":[ { "Id":"1","Name":"Jon" },{ "Id":"2","Name":"Mark"}] }

我想做的--> 访问该 json 的 field2 并遍历 ID 和名称(我根本不关心 field1)。我怎样才能做到这一点?这与序列化有什么关系吗?

请您参考如下方法:

一个可能的解决方案是——

        var o = (JArray)(JObject.Parse(json)["field2"]); 
        foreach (JToken token in o) 
        { 
            Console.WriteLine(token["Id"]); 
            Console.WriteLine(token["Name"]); 
        } 

或者,您可以创建强类型 C# 对象并将它们作为列表访问 -

static void Main(string[] args) 
    { 
        var o = JsonConvert.DeserializeObject<RootObject>(json).field2;// list - count = 2 
    } 
 
public class Field2 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
} 
 
public class RootObject 
{ 
    public string field1 { get; set; } 
    public List<Field2> field2 { get; set; } 
}