久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

      <bdo id='mfhjZ'></bdo><ul id='mfhjZ'></ul>
  1. <tfoot id='mfhjZ'></tfoot>

    1. <legend id='mfhjZ'><style id='mfhjZ'><dir id='mfhjZ'><q id='mfhjZ'></q></dir></style></legend>

      <small id='mfhjZ'></small><noframes id='mfhjZ'>

    2. <i id='mfhjZ'><tr id='mfhjZ'><dt id='mfhjZ'><q id='mfhjZ'><span id='mfhjZ'><b id='mfhjZ'><form id='mfhjZ'><ins id='mfhjZ'></ins><ul id='mfhjZ'></ul><sub id='mfhjZ'></sub></form><legend id='mfhjZ'></legend><bdo id='mfhjZ'><pre id='mfhjZ'><center id='mfhjZ'></center></pre></bdo></b><th id='mfhjZ'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='mfhjZ'><tfoot id='mfhjZ'></tfoot><dl id='mfhjZ'><fieldset id='mfhjZ'></fieldset></dl></div>

      使用 JSON.NET 解析 JSON 對(duì)象流的正確方法是什么

      What is the correct way to use JSON.NET to parse stream of JSON objects?(使用 JSON.NET 解析 JSON 對(duì)象流的正確方法是什么?)

            <tfoot id='PyvOR'></tfoot>
          • <small id='PyvOR'></small><noframes id='PyvOR'>

            <i id='PyvOR'><tr id='PyvOR'><dt id='PyvOR'><q id='PyvOR'><span id='PyvOR'><b id='PyvOR'><form id='PyvOR'><ins id='PyvOR'></ins><ul id='PyvOR'></ul><sub id='PyvOR'></sub></form><legend id='PyvOR'></legend><bdo id='PyvOR'><pre id='PyvOR'><center id='PyvOR'></center></pre></bdo></b><th id='PyvOR'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='PyvOR'><tfoot id='PyvOR'></tfoot><dl id='PyvOR'><fieldset id='PyvOR'></fieldset></dl></div>
              <tbody id='PyvOR'></tbody>
            • <bdo id='PyvOR'></bdo><ul id='PyvOR'></ul>
              <legend id='PyvOR'><style id='PyvOR'><dir id='PyvOR'><q id='PyvOR'></q></dir></style></legend>
              • 本文介紹了使用 JSON.NET 解析 JSON 對(duì)象流的正確方法是什么?的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

                問(wèn)題描述

                我有一個(gè) JSON 對(duì)象流,看起來(lái)有點(diǎn)像這樣:

                {...}{...}{...}{...}...

                所以基本上是一個(gè)沒(méi)有任何分隔符的 JSON 對(duì)象的串聯(lián)列表.使用 JSON.NET 將它們反序列化為 IEnumerable<T> 的正確方法是什么?目前我嘗試了類(lèi)似

                var serializer = new JsonSerializer();序列化程序.CheckAdditionalContent = false;使用 (var reader = new StreamReader(stream))使用 (var jsonReader = new JsonTextReader(reader)) {reader.SupportMultipleContent = true;閱讀器.Read();而(reader.TokenType!= JsonToken.None){yield return serializer.Deserialize(reader);}}

                但這失敗了

                Newtonsoft.Json.JsonSerializationException:反序列化對(duì)象時(shí)出現(xiàn)意外令牌:EndObject.路徑 '',第 1 行,位置 55.在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader 閱讀器,類(lèi)型 objectType,JsonContract 合同,JsonProperty 成員,JsonContainerContract containerContract,JsonProperty containerMember,對(duì)象現(xiàn)有值)在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader 閱讀器,類(lèi)型 objectType,布爾 checkAdditionalContent)在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader 閱讀器,類(lèi)型 objectType)在 Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader 閱讀器)

                顯然我需要在 Deserialize 調(diào)用之后移動(dòng)閱讀器,但我該怎么做呢?

                解決方案

                我認(rèn)為如果你稍微改變你的循環(huán),一切都應(yīng)該工作:

                public IEnumerableReadJson(流流){var serializer = new JsonSerializer();使用 (var reader = new StreamReader(stream))使用 (var jsonReader = new JsonTextReader(reader)){jsonReader.SupportMultipleContent = true;而(jsonReader.Read()){yield return serializer.Deserialize<TResult>(jsonReader);}}}

                請(qǐng)注意,當(dāng)傳遞給此方法的 Stream 處于打開(kāi)狀態(tài)時(shí),您必須遍歷 IEnumerable:

                using (var stream =/* some stream */){IEnumerable<MyClass>結(jié)果 = ReadJson<MyClass>(流);foreach(結(jié)果中的變量項(xiàng)){Console.WriteLine(item.MyProperty);}}

                示例: https://dotnetfiddle.net/Y2FLuK

                JsonNet 站點(diǎn)上的示例:使用 JsonReader 讀取多個(gè)片段p>

                I have a stream of JSON objects that looks somewhat like this:

                {...}{...}{...}{...}...
                

                So basically a concatenated list of JSON objects without any separator. What's the proper way to deserialize those into an IEnumerable<T> using JSON.NET? At the moment I tried something like

                var serializer = new JsonSerializer();
                serializer.CheckAdditionalContent = false;
                
                using (var reader = new StreamReader(stream))
                using (var jsonReader = new JsonTextReader(reader)) {
                    reader.SupportMultipleContent = true;
                    reader.Read();
                    while (reader.TokenType != JsonToken.None) {
                        yield return serializer.Deserialize<TResult>(reader);
                    }
                }
                

                But this fails with

                Newtonsoft.Json.JsonSerializationException: Unexpected token while deserializing object: EndObject. Path '', line 1, position 55.
                  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
                  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
                  at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
                  at Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader reader)
                

                Obviously I need to move the reader after the Deserialize call, but how do I do this?

                解決方案

                I think if you change your loop around slightly everything should work:

                public IEnumerable<TResult> ReadJson<TResult>(Stream stream)
                {
                    var serializer = new JsonSerializer();
                
                    using (var reader = new StreamReader(stream))
                    using (var jsonReader = new JsonTextReader(reader))
                    {
                        jsonReader.SupportMultipleContent = true;
                
                        while (jsonReader.Read())
                        {
                            yield return serializer.Deserialize<TResult>(jsonReader);
                        }
                    }
                }
                

                Note that you must iterate over the IEnumerable<TResult> while the Stream passed to this method is open:

                using (var stream = /* some stream */)
                {
                    IEnumerable<MyClass> result = ReadJson<MyClass>(stream);
                
                    foreach (var item in result)
                    {
                        Console.WriteLine(item.MyProperty);
                    }
                }
                

                Example: https://dotnetfiddle.net/Y2FLuK

                Sample on JsonNet site: Read Multiple Fragments With JsonReader

                這篇關(guān)于使用 JSON.NET 解析 JSON 對(duì)象流的正確方法是什么?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

                相關(guān)文檔推薦

                Ignore whitespace while reading XML(讀取 XML 時(shí)忽略空格)
                XML to LINQ with Checking Null Elements(帶有檢查空元素的 XML 到 LINQ)
                Reading XML with unclosed tags in C#(在 C# 中讀取帶有未閉合標(biāo)簽的 XML)
                Parsing tables, cells with Html agility in C#(在 C# 中使用 Html 敏捷性解析表格、單元格)
                delete element from xml using LINQ(使用 LINQ 從 xml 中刪除元素)
                Parse malformed XML(解析格式錯(cuò)誤的 XML)

                  1. <tfoot id='BjBrm'></tfoot>

                      <small id='BjBrm'></small><noframes id='BjBrm'>

                      <legend id='BjBrm'><style id='BjBrm'><dir id='BjBrm'><q id='BjBrm'></q></dir></style></legend>

                        <tbody id='BjBrm'></tbody>
                      <i id='BjBrm'><tr id='BjBrm'><dt id='BjBrm'><q id='BjBrm'><span id='BjBrm'><b id='BjBrm'><form id='BjBrm'><ins id='BjBrm'></ins><ul id='BjBrm'></ul><sub id='BjBrm'></sub></form><legend id='BjBrm'></legend><bdo id='BjBrm'><pre id='BjBrm'><center id='BjBrm'></center></pre></bdo></b><th id='BjBrm'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='BjBrm'><tfoot id='BjBrm'></tfoot><dl id='BjBrm'><fieldset id='BjBrm'></fieldset></dl></div>

                          <bdo id='BjBrm'></bdo><ul id='BjBrm'></ul>
                        • 主站蜘蛛池模板: 国产精品久久久久久久三级 | 欧美影院| 亚洲综合二区 | 四虎永久影院 | 中文区中文字幕免费看 | 亚洲免费在线观看av | 日本爱爱视频 | 在线 丝袜 欧美 日韩 制服 | 91久久精品一区 | 成人国产精品一级毛片视频毛片 | 国产区一区二区三区 | 亚洲情侣视频 | 91文字幕巨乱亚洲香蕉 | 在线一区视频 | 一二区视频 | 日韩三 | 狠狠干在线 | 免费黄网站在线观看 | 夫妻午夜影院 | 国产精品久久久久久久久久免费看 | 国产在线观看网站 | 日韩一区二区在线观看 | 中文字幕在线欧美 | 中文字幕av一区 | 久久国产三级 | 中文字幕日韩专区 | 偷拍自拍第一页 | 欧美a在线 | 网站黄色在线免费观看 | 国产视频一区二区三区四区五区 | 日韩精品视频中文字幕 | 免费成人午夜 | 97久久精品午夜一区二区 | 欧美1区2区| 欧美在线一区二区三区 | 欧美性大战久久久久久久蜜臀 | 久久性色 | 国产一级黄色网 | 夜夜草av| 超碰av人人 | 成人黄在线观看 |