首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c#中没有双qoutes和十进制类型的xml到json字符串

在c#中没有双qoutes和十进制类型的xml到json字符串
EN

Stack Overflow用户
提问于 2017-05-04 14:08:06
回答 1查看 884关注 0票数 0

我有一个正在尝试转换为JSON字符串的XElement。下面是我的XElement:

代码语言:javascript
复制
<myxml>
  <gstin>28GSDUH1331G155</gstin>
  <fp>122016</fp>
  <gt>3782969.01</gt>
  <b2b>
    <ctin>29GSDUH1331G155</ctin>
    <inv p2:Array="true">
      <inum>S008502</inum>
      <idt>15-11-2016</idt>
      <val>10000.00</val>
      <pos>27</pos>
      <rchrg>N</rchrg>
      <prs>Y</prs>
      <od_num>8401</od_num>
      <od_dt>14-11-2016</od_dt>
      <etin>30GSDUH1331G155</etin>
      <itms p2:Array="true">
        <num>1</num>
        <itm_det>
          <ty>G</ty>
          <hsn_sc>G1221</hsn_sc>
          <txval>10000.00</txval>
          <crt>1.00</crt>
          <camt>100.00</camt>
          <srt>1.00</srt>
          <samt>100.00</samt>
          <csrt>100.00</csrt>
          <csamt>100.00</csamt>
        </itm_det>
      </itms>
    </inv>
  </b2b>
</myxml>

我使用这个字符串jsonString = JsonConvert.SerializeXNode(myxml);在jsonstring中进行转换,并得到jsonstring。

代码语言:javascript
复制
"{\"myxml\":{\"gstin\":\"28GSDUH1331G155\",\"fp\":\"122016\",\"gt\":\"3782969.01\",\"b2b\":[{\"ctin\":\"29GSDUH1331G155\",\"inv\":[{\"inum\":\"S008502\",\"idt\":\"15-11-2016\",\"val\":\"10000.00\",\"pos\":\"27\",\"rchrg\":\"N\",\"prs\":\"Y\",\"od_num\":\"8401\",\"od_dt\":\"14-11-2016\",\"etin\":\"30GSDUH1331G155\",\"itms\":[{\"num\":\"1\",\"itm_det\":{\"ty\":\"G\",\"hsn_sc\":\"G1221\",\"txval\":\"10000.00\",\"crt\":\"1.00\",\"camt\":\"100.00\",\"srt\":\"1.00\",\"samt\":\"100.00\",\"csrt\":\"100.00\",\"csamt\":\"100.00\"}}]}]}]}}"

我遇到的问题是整数和十进制值被反斜杠和双引号包围(\“\")。我不想在数字和小数上反斜杠双引号。

这是我希望作为输出的JSON字符串。

代码语言:javascript
复制
"{\"myxml\":{\"gstin\":\"28GSDUH1331G155\",\"fp\":122016,\"gt\":3782969.01,\"b2b\":[{\"ctin\":\"29GSDUH1331G155\",\"inv\":[{\"inum\":\"S008502\",\"idt\":\"15-11-2016\",\"val\":10000.00,\"pos\":27,\"rchrg\":\"N\",\"prs\":\"Y\",\"od_num\":8401,\"od_dt\":\"14-11-2016\",\"etin\":\"30GSDUH1331G155\",\"itms\":[{\"num\":1,\"itm_det\":{\"ty\":\"G\",\"hsn_sc\":\"G1221\",\"txval\":10000.00,\"crt\":1.00,\"camt\":100.00,\"srt\":1.00,\"samt\":100.00,\"csrt\":100.00,\"csamt\":100.00}}]}]}]}}"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-04 14:26:52

正如注释已经指出的那样,更多的信息可能会有所帮助(因为您的XML当前无效)。

而且,在未来,对你提出的问题,最好是展示最小的、完整的和可验证的例子--不仅是为了证明你已经尝试过了,而且是为了给那些帮助你提供更多信息的人。

简单地检查调试器中的元素时,它实际上会显示反斜杠。

代码语言:javascript
复制
"{\"myxml\":{\"gstin\":\"28GSDUH1331G155\",\"fp\":\"122016\",\"gt\":\"3782969.01\",\"b2b\":{\"ctin\":\"29GSDUH1331G155\",\"inv\":{\"@Array\":\"true\",\"inum\":\"S008502\",\"idt\":\"15-11-2016\",\"val\":\"10000.00\",\"pos\":\"27\",\"rchrg\":\"N\",\"prs\":\"Y\",\"od_num\":\"8401\",\"od_dt\":\"14-11-2016\",\"etin\":\"30GSDUH1331G155\",\"itms\":{\"@Array\":\"true\",\"num\":\"1\",\"itm_det\":{\"ty\":\"G\",\"hsn_sc\":\"G1221\",\"txval\":\"10000.00\",\"crt\":\"1.00\",\"camt\":\"100.00\",\"srt\":\"1.00\",\"samt\":\"100.00\",\"csrt\":\"100.00\",\"csamt\":\"100.00\"}}}}}}"

这些反斜杠只是作为转义字符插入,实际上并不存在。

如果您检查jsonString的实际值,您将找到您的期望值。当您在调试器中查看jsonString时,您将看到一个raw JSON string,但在下面的屏幕快照中,您将看到一个JSON对象的表示形式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43785198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档