我有一个正在尝试转换为JSON字符串的XElement。下面是我的XElement:
<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。
"{\"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字符串。
"{\"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}}]}]}]}}"发布于 2017-05-04 14:26:52
正如注释已经指出的那样,更多的信息可能会有所帮助(因为您的XML当前无效)。
而且,在未来,对你提出的问题,最好是展示最小的、完整的和可验证的例子--不仅是为了证明你已经尝试过了,而且是为了给那些帮助你提供更多信息的人。
简单地检查调试器中的元素时,它实际上会显示反斜杠。
"{\"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对象的表示形式。

https://stackoverflow.com/questions/43785198
复制相似问题