2013-01-08 32 views
1

JSON的轉換我有以下簡單的XML到JSON的轉換代碼XML使用json.net

XmlDocument xmlDocument=new XmlDocument(); 
xmlDocument.LoadXml("<Root><Record><Column>1</Column></Record></Root>"); 
string val=JsonConvert.SerializeXmlNode(xmlDocument,Formatting.None); 

XML不能得到轉換,但值包含一些字符,JSON無效。

值包含以下

「{\」 根\ 「:{\」 記錄\ 「:{\」 列\ 「:\」 1 \「}}}

我不希望這些在轉換後的字符串「\」字符。我失去了一些東西在這裏?

回答

1

我失去了一些東西在這裏?

我懷疑你錯過了一個事實,即他們是不是真的存在:)我相信你只是一個人而已在調試器中加入它們 - 它可以爲你帶來引號之類的東西。

只需將字符串打印到控制檯,即可看到您想要的內容。

(自己使用示例代碼我剛剛試了一下,它的罰款。)

+0

喬恩,感謝您的快速反應。但是,這是返回給客戶端的確切文本,也就是表明它們在那裏的字符串的值。 – user1901680

+0

我正在返回val到客戶端,這就是我在Fiddler HTTP/1.1中獲得的200 200 OK 服務器:ASP.NET Development Server/10.0.0.0 Date:星期二,2013年01月08日04:19:52 GMT X- AspNet-Version:4.0.30319 Cache-Control:no-cache Pragma:no-cache Expires:-1 Content-Type:application/json; charset = utf-8 Content-Length:44 Connection:Close 「{\」Root \「:{\」Record \「:{\」Column \「:\」1 \「}}}」 – user1901680

+1

@ user1901680:然後,它聽起來像你對數據進行雙重編碼。 val中的值是正確的。 (正如我所說,記錄它,你會看到它很好。)你沒有顯示你如何將數據返回給客戶端,但是如果你已經聲明你會返回一個字符串*和*你想要結果在JSON中,這可能是問題。 –

0

我不知道,但只是嘗試這個..而不是使用漢字的使用預先聲明的實體。

Character Predeclared Entity 
&    &amp; 
<    &lt; 
>    &gt; 
"    &quot; 
'    &apos; 

例如,錄製名爲「AT & T」應該出現在XML標記爲「AT & T」:XML解析器將「&」時自動照顧變化「&」迴文件被處理。

任何人糾正我,如果我錯了......

感謝,

+0

您現在可能已經意識到,計算器會對HtmlDecode進行響應 – prthrokz

+1

不,JSON編碼工作正常 - 問題在於OP如何返回數據。 –