2016-06-27 6 views
0

親ノードが含まれていないXML文字列があります。このXMLは、APIのjson要求の表現です。それは意味がないように見えますが、非プログラマーがファイルを読みやすくするためにこのようにしています。 XMLをjsonに変換するために、私が見てきたすべてのことは、文字列をXMLDocumentに変換し、次にjsonを取得するために以下を使用すると言います。JSONと親ノードがないXML文字列C#

string jsonText = JsonConvert.SerializeXmlNode(doc); 

私はここにある問題は、XMLが本当に有効ではありませんし、このために、それがXML文書に変換することができないということです。私が本当に欲しいのは、これを行うことができることです。

string jsonText = JsonConvert.SerializeXmlNode(doc.InnerXml); 

innerXMLは文字列であり、オブジェクトではないため、これは機能しません。私は、ルート要素を作成し、その後、結果の文字列を切り取るためにサブ文字列を使用するだけで動作させることができましたが、これは無意味です。後でjsonからXMLを削除する必要があるだけでxmlを追加する必要がなく、これを行うより良い方法があります。下の例のように、xmlのようなXMLをjsonに変換することは可能ですか?

<rootnode> 
    <fielda>a</fielda> 
    <fieldb>b</fieldb> 
</rootnode> 

はブールomitRootObjectかかるoverload of SerializeXmlNodeあります

{ 
    "fielda": "a", 
    "fieldb": "b" 
    } 
+0

http://www.utilities-online.info/xmltojson/#.V3D8CLh96Uk RootObjectを省略するためのものです –

答えて

2

に変換します。

string jsonText = JsonConvert.SerializeXmlNode(doc, Formatting.None, true); 
1

JsonConvert.SerializeXmlNodeは、ルートを無視するために使用できるオーバーロードされたメソッドを持っています。

string jsonText = JsonConvert.SerializeXmlNode(doc, Formatting.None, true); 

3番目のパラメータは

関連する問題