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

    • <bdo id='SC2yu'></bdo><ul id='SC2yu'></ul>
  • <tfoot id='SC2yu'></tfoot>
  • <small id='SC2yu'></small><noframes id='SC2yu'>

    1. <i id='SC2yu'><tr id='SC2yu'><dt id='SC2yu'><q id='SC2yu'><span id='SC2yu'><b id='SC2yu'><form id='SC2yu'><ins id='SC2yu'></ins><ul id='SC2yu'></ul><sub id='SC2yu'></sub></form><legend id='SC2yu'></legend><bdo id='SC2yu'><pre id='SC2yu'><center id='SC2yu'></center></pre></bdo></b><th id='SC2yu'></th></span></q></dt></tr></i><div id='SC2yu'><tfoot id='SC2yu'></tfoot><dl id='SC2yu'><fieldset id='SC2yu'></fieldset></dl></div>

        仅反序列化 JSON 文件的一个属性

        时间:2023-05-23

                <tbody id='VWkMv'></tbody>

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

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

                  <bdo id='VWkMv'></bdo><ul id='VWkMv'></ul>

                  <legend id='VWkMv'><style id='VWkMv'><dir id='VWkMv'><q id='VWkMv'></q></dir></style></legend>
                • 本文介绍了仅反序列化 JSON 文件的一个属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  限时送ChatGPT账号..

                  我遇到了一个问题.我想反序列化来自服务器的复杂 JSON 响应,但我只需要它的一部分.

                  I am faced with a problem. I want to deserialize a complex JSON response from a server, but I only need one part of it.

                  这是一个例子:

                  {
                   "menu": {
                    "id": "file",
                    "value": "File",
                    "popup": {
                      "menuitem": [
                        {"value": "New", "onclick": "CreateNewDoc()"},
                        {"value": "Open", "onclick": "OpenDoc()"},
                        {"value": "Close", "onclick": "CloseDoc()"}
                      ]
                    }
                   }
                  }
                  

                  我也使用了Csharp2json来获取我需要的类对象,我只是根据自己的需要修改了菜单类:

                  I also used Csharp2json to get the class objects that I need, I just modified the menu class according to my needs :

                      public class Menuitem
                  {
                      public string value { get; set; }
                      public string onclick { get; set; }
                  }
                  
                  public class Popup
                  {
                      public IList<Menuitem> menuitem { get; set; }
                  }
                  
                  public class Menu
                  {
                      public Popup popup { get; set; }
                  }
                  
                  public class RootObjectJourney
                  {
                      public Menu menu { get; set; }
                  }
                  

                  现在,如果我只需要弹出值和他的孩子,我该如何反序列化?

                  Now, how do I deserialize if I only need the popup value and his children?

                  推荐答案

                  您实际上可以利用 NewtonSoft.Json 的 Linq 命名空间并稍微修改您的代码以仅获得弹出窗口".JSON 中的元素.

                  You can actually utilize the Linq namespace of the NewtonSoft.Json and modify your code little bit to get only the "popup" elements from the JSON.

                  你的班级结构保持不变.确保使用命名空间

                  your class structure remains the same. Make sure you use the namespace(s)

                  using Newtonsoft.Json;
                  using Newtonsoft.Json.Linq;
                  

                  然后在你的代码中,一旦你有了 JSON 字符串,你就可以使用JObject".静态方法解析"解析 JSON,比如

                  then in your code once you have the JSON string with you, you can use the "JObject" static method "Parse" to parse the JSON, like

                     var parsedObject = JObject.Parse(jsonString);
                  

                  这将为您提供 JObject,您可以使用它访问所有 JSON 键,就像字典一样.

                  This will give you the JObject with which you can access all your JSON Keys just like a Dictionary.

                  var popupJson = parsedObject["menu"]["popup"].ToString();
                  

                  这个 popupJson 现在只有弹出键的 JSON.有了这个,您可以使用 JsonConvert 来反序列化 JSON.

                  This popupJson now has the JSON only for the popup key. with this you can use the JsonConvert to de- serialize the JSON.

                  var popupObj = JsonConvert.DeserializeObject<Popup>(popupJson);
                  

                  这个 popupObj 只有菜单项列表.

                  this popupObj has only list of menuitems.

                  这篇关于仅反序列化 JSON 文件的一个属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:为什么当我使用 JSON.NET 反序列化时会忽略我的默认值? 下一篇:反序列化列表&lt;AbstractClass&gt;使用 newtonsoft.json

                  相关文章

                  • <bdo id='TC90X'></bdo><ul id='TC90X'></ul>

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

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

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