如何将 StreamReader responseStream 分解成段以构建 array/objects

How to break up StreamReader responseStream into segments to build array/objects

我想要做的是将从 webRequest 返回的字符串分解为多个段,以便我可以将它们转换为我的客户对象。该字符串包含 5 个客户的数据,但它 returns 作为 1 个大字符串。 JObject.Parse() 适用于单个项目,但不适用于当前接收字符串的方式。

 public IEnumerable<Customer> GetByPage(int page)
        {
            try
            {

                WebRequest request = WebRequest.Create($"http://localhost:5002/api/customer/GetByPage?page={page}");
                using (WebResponse response = request.GetResponse())
                using (StreamReader stream = new StreamReader(response.GetResponseStream()))
                {
                  
                    incomingStream = stream.ReadToEnd();
                 //breaks here
                    jsonObj = JObject.Parse(incomingStream);

                    //Use the returned jsonObj to build a customer object
                    customer.Id = Int32.Parse((string)jsonObj.GetValue("id"));
                    customer.TitleId = Int32.Parse((string)jsonObj.GetValue("id"));
                    customer.FirstName = (string)jsonObj.GetValue("firstName");

                }
            }
            catch (Exception)
            {

                throw;
            }

            return customers;
        }

这是它给我的字符串(为了简单起见,我删除了很多) "[{\"id\":1005,\"titleId\":6,\"languageId\":1,\"termsId\":2,\"statusId\":1,\"profileId\":1,\"firstName\":\"K\"},{\"id\":1006,\"titleId\":5,\"languageId\":2,\"termsId\":1,\"statusId\":1,\"profileId\":1,\"firstName\":\"P\"}]"

该字符串看起来像一个有效的 JSON 数组表示,应该可以毫无问题地进行解析。您可以使用 JArray.Parse 来解析它 (https://www.newtonsoft.com/json/help/html/ParseJsonArray.htm)

您还可以检查 JsonConvert.DeserializeObject<T> 以获取更多类型安全的解析方式。查看详情: or https://www.newtonsoft.com/json/help/html/DeserializeCollection.htm