尝试在 C# 中反序列化 Json

Trying to deserialize Json in c#

我正在尝试在 WCF Web 服务的 C# 中反序列化 JSON 并将其重新打包为列表。我在 Json.NET 中使用 JObject.Parse。下面是我用来调用 Web 服务、获取 JSON 并将其放入列表中的代码。

String url = URL to a web service;
HttpWebRequest WebReqOpenPermits = (HttpWebRequest)WebRequest.Create(url);
WebReqOpenPermits.ContentType = "application/json; charset=utf-8";
WebReqOpenPermits.Method = "GET";
HttpWebResponse WebRespOpenPermits = (HttpWebResponse)WebReqOpenPermits.GetResponse();

Stream jsonStream = WebRespOpenPermits.GetResponseStream();
List<routeOpenPermits> permitsList = new List<routeOpenPermits>();
using (StreamReader reader = new StreamReader(jsonStream))
{
   string line;
   routeOpenPermits routeValues = new routeOpenPermits();
   while ((line = reader.ReadLine()) != null)
   {
       JObject results = JObject.Parse(line);
       foreach (var result in results["GetOpenPermitsByIdResult"])
                {
                  routeValues.oAddress = (string)result["oAddress"];
                  routeValues.oDateIssued = (string)result["oDateIssued"];
                  routeValues.oPermit = (string)result["oPermit"];
                  permitsList.Add(routeValues);
                }
            }
        }

此代码将正确数量的记录添加到列表中,但仅将 JSON 字符串中最后一条记录的数据添加到列表中。例如,如果 JSON 数据包含 5 条记录,所有记录都将添加到列表中,但列表中的数据仅来自 JSON 字符串中的第五条也是最后一条记录。第五条记录的数据在列表中重复了五次。

我做错了什么?有没有更好的方法,因为我愿意寻找一种新方法。我已经搜索了很长时间,但未能找到解决方案。感谢您发送给我的任何帮助、示例、指导或建议。我对反序列化 JSON.

感到非常沮丧

你应该移动这条线:

routeOpenPermits routeValues = new routeOpenPermits();

进入您的 foreach 循环内部