pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

      <i id='0RyAM'><tr id='0RyAM'><dt id='0RyAM'><q id='0RyAM'><span id='0RyAM'><b id='0RyAM'><form id='0RyAM'><ins id='0RyAM'></ins><ul id='0RyAM'></ul><sub id='0RyAM'></sub></form><legend id='0RyAM'></legend><bdo id='0RyAM'><pre id='0RyAM'><center id='0RyAM'></center></pre></bdo></b><th id='0RyAM'></th></span></q></dt></tr></i><div class="ooo2ce2" id='0RyAM'><tfoot id='0RyAM'></tfoot><dl id='0RyAM'><fieldset id='0RyAM'></fieldset></dl></div>
      • <bdo id='0RyAM'></bdo><ul id='0RyAM'></ul>
      <legend id='0RyAM'><style id='0RyAM'><dir id='0RyAM'><q id='0RyAM'></q></dir></style></legend>

      <small id='0RyAM'></small><noframes id='0RyAM'>

        <tfoot id='0RyAM'></tfoot>
      1. 如何使用 C#/LINQ 將 XML 轉換為 JSON?

        How to convert XML to JSON using C#/LINQ?(如何使用 C#/LINQ 將 XML 轉換為 JSON?)

      2. <tfoot id='xpMAj'></tfoot>
            <tbody id='xpMAj'></tbody>

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

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

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

                  本文介紹了如何使用 C#/LINQ 將 XML 轉換為 JSON?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我有以下需要在服務器中轉換為 JSON 的 XML 文件.最初我以為我會將它轉換為字典,然后使用 JavaScriptSerializer 將其轉換為 JSON,但由于每列可能有不同的值類型,我認為它不會起作用.以前有人在 C#/LINQ 中做過類似的事情嗎?

                  I have the following XML file that I need to convert to JSON in the server. Initially I thought I would convert it to a Dictionary and then use the JavaScriptSerializer to turn it into JSON but since each column could have a different value type, I don't think it would work. Has anyone done something similar before in C#/LINQ?

                  我需要保留每列的值類型(布爾、字符串、整數).

                  I need to preserve the Value Types(Boolean, String, Integer) of each column.

                  如果我剛剛開始使用 XML,我將不勝感激.謝謝.

                  I would appreciate any advice on this as Im just starting to work with XML. Thanks.

                  <Columns>
                   <Column Name="key1" DataType="Boolean">True</Column>
                   <Column Name="key2" DataType="String">Hello World</Column>
                   <Column Name="key3" DataType="Integer">999</Column>
                  </Columns>
                  

                  推薦答案

                  using System;
                  using System.Linq;
                  using System.Web.Script.Serialization;
                  using System.Xml.Linq;
                  
                  class Program
                  {
                      static void Main()
                      {
                          var xml = 
                          @"<Columns>
                            <Column Name=""key1"" DataType=""Boolean"">True</Column>
                            <Column Name=""key2"" DataType=""String"">Hello World</Column>
                            <Column Name=""key3"" DataType=""Integer"">999</Column>
                          </Columns>";
                          var dic = XDocument
                              .Parse(xml)
                              .Descendants("Column")
                              .ToDictionary(
                                  c => c.Attribute("Name").Value, 
                                  c => c.Value
                              );
                          var json = new JavaScriptSerializer().Serialize(dic);
                          Console.WriteLine(json);
                      }
                  }
                  

                  產生:

                  {"key1":"True","key2":"Hello World","key3":"999"}
                  

                  顯然,這會將所有值都視為字符串.如果您想保留底層類型語義,您可以執行以下操作:

                  Obviously this treats all the values as strings. If you want to keep the underlying type semantics you could do the following:

                  using System;
                  using System.Linq;
                  using System.Web.Script.Serialization;
                  using System.Xml.Linq;
                  
                  class Program
                  {
                      static void Main()
                      {
                          var xml = 
                          @"<Columns>
                            <Column Name=""key1"" DataType=""System.Boolean"">True</Column>
                            <Column Name=""key2"" DataType=""System.String"">Hello World</Column>
                            <Column Name=""key3"" DataType=""System.Int32"">999</Column>
                          </Columns>";
                          var dic = XDocument
                              .Parse(xml)
                              .Descendants("Column")
                              .ToDictionary(
                                  c => c.Attribute("Name").Value, 
                                  c => Convert.ChangeType(
                                      c.Value,
                                      typeof(string).Assembly.GetType(c.Attribute("DataType").Value, true)
                                  )
                              );
                          var json = new JavaScriptSerializer().Serialize(dic);
                          Console.WriteLine(json);
                      }
                  }
                  

                  產生:

                  {"key1":true,"key2":"Hello World","key3":999}
                  

                  如果您無法修改底層 XML 結構,您將需要一個自定義函數,該函數將在您的自定義類型和底層 .NET 類型之間進行轉換:

                  And if you cannot modify the underlying XML structure you will need a custom function that will convert between your custom types and the underlying .NET type:

                  using System;
                  using System.Linq;
                  using System.Web.Script.Serialization;
                  using System.Xml.Linq;
                  
                  class Program
                  {
                      static void Main()
                      {
                          var xml = 
                          @"<Columns>
                            <Column Name=""key1"" DataType=""Boolean"">True</Column>
                            <Column Name=""key2"" DataType=""String"">Hello World</Column>
                            <Column Name=""key3"" DataType=""Integer"">999</Column>
                          </Columns>";
                          var dic = XDocument
                              .Parse(xml)
                              .Descendants("Column")
                              .ToDictionary(
                                  c => c.Attribute("Name").Value, 
                                  c => Convert.ChangeType(
                                      c.Value, 
                                      GetType(c.Attribute("DataType").Value)
                                  )
                              );
                          var json = new JavaScriptSerializer().Serialize(dic);
                          Console.WriteLine(json);
                      }
                  
                      private static Type GetType(string type)
                      {
                          switch (type)
                          {
                              case "Integer":
                                  return typeof(int);
                              case "String":
                                  return typeof(string);
                              case "Boolean":
                                  return typeof(bool);
                              // TODO: add any other types that you want to support
                              default:
                                  throw new NotSupportedException(
                                      string.Format("The type {0} is not supported", type)
                                  );
                          }
                      }
                  }
                  

                  這篇關于如何使用 C#/LINQ 將 XML 轉換為 JSON?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

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

                  相關文檔推薦

                  Ignore whitespace while reading XML(讀取 XML 時忽略空格)
                  XML to LINQ with Checking Null Elements(帶有檢查空元素的 XML 到 LINQ)
                  Reading XML with unclosed tags in C#(在 C# 中讀取帶有未閉合標簽的 XML)
                  Parsing tables, cells with Html agility in C#(在 C# 中使用 Html 敏捷性解析表格、單元格)
                  delete element from xml using LINQ(使用 LINQ 從 xml 中刪除元素)
                  Parse malformed XML(解析格式錯誤的 XML)
                  <legend id='UW8tY'><style id='UW8tY'><dir id='UW8tY'><q id='UW8tY'></q></dir></style></legend>

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

                        1. <small id='UW8tY'></small><noframes id='UW8tY'>

                            <tbody id='UW8tY'></tbody>
                          • 主站蜘蛛池模板: 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 广西教师资格网-广西教师资格证考试网 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 新能源汽车教学设备厂家报价[汽车教学设备运营18年]-恒信教具 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 山东钢衬塑罐_管道_反应釜厂家-淄博富邦滚塑防腐设备科技有限公司 | 塑料薄膜_PP薄膜_聚乙烯薄膜-常州市鑫美新材料包装厂 | 猎头招聘_深圳猎头公司_知名猎头公司| 创客匠人-让IP变现不走弯路 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 泰国试管婴儿_泰国第三代试管婴儿费用|成功率|医院—新生代海外医疗 | 直读光谱仪,光谱分析仪,手持式光谱仪,碳硫分析仪,创想仪器官网 | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | AGV无人叉车_激光叉车AGV_仓储AGV小车_AGV无人搬运车-南昌IKV机器人有限公司[官网] | 中细软知识产权_专业知识产权解决方案提供商 | 防爆电机_防爆电机型号_河南省南洋防爆电机有限公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 聚合甘油__盐城市飞龙油脂有限公司 | 丹佛斯压力传感器,WISE温度传感器,WISE压力开关,丹佛斯温度开关-上海力笙工业设备有限公司 | 塑料脸盆批发,塑料盆生产厂家,临沂塑料广告盆,临沂家用塑料盆-临沂市永顺塑业 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 一体化污水处理设备_生活污水处理设备_全自动加药装置厂家-明基环保 | Akribis直线电机_直线模组_力矩电机_直线电机平台|雅科贝思Akribis-杭州摩森机电科技有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 耐酸碱泵-自吸耐酸碱泵型号「品牌厂家」立式耐酸碱泵价格-昆山国宝过滤机有限公司首页 | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 北钻固控设备|石油钻采设备-石油固控设备厂家| 炒货机-炒菜机-炒酱机-炒米机@霍氏机械| 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | 聚丙烯酰胺PAM-聚合氯化铝PAC-絮凝剂-河南博旭环保科技有限公司 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 连栋温室大棚建造厂家-智能玻璃温室-薄膜温室_青州市亿诚农业科技 | 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 公交驾校-北京公交驾校欢迎您! 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 |