2012-02-28 20 views
1

私は新しいMVC Web APIでラップしたい従来のWebサービスを持っています。疑問ですが、私のXMLをjsonに変換するASP.NET Web APIを入手できますか?Web APIはXMLをJsonに変換できますか?

私はXDocumentを使って動的オブジェクトを作成し、それを返すことを考えていましたが、残念なことにExpandoObjectでそれを試してみると、キー/値のペアを持つjsonオブジェクトが返されました。

答えて

1

string result = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xmldocument); 

ダウンロードNewtonsoft.Jsonは、これがそうおおよそのようなダイナミックJsonObjectにXDocumentを変換することによって行うことができる判明:

var doc = XDocument.Load(uri); 
foreach (var node in doc.Root.Descendants()) { 
    var obj = (dynamic) new JsonObject(); 
    foreach (var child in node.Descendants()) 
    { 
     obj[child.Name.LocalName] = child.Value; 
     yield return obj; 
    } 
} 
2

できます。これを行う1つの方法は、XMLをオブジェクトに逆シリアル化してからJSONに再度シリアル化することです。

XMLを読み込んでJSONを吐き出す独自のxml-to-json "transcriber"を書く方がより効率的です(コードを作成するのは難しいですが)。

すべてのXMLをJSONとして簡単に表すことはできません。 json.NETを使用して

6

あなたは簡単にそれを行うことができます:http://james.newtonking.com/pages/json-net.aspx

+0

ええ、これは私の最初の考えでしたが、私はこれがWeb APIによって行われることを望んでいたので、使用されたdataType(xmlまたはjson)に応じてApiControllerは正しいforma ... – nieve

+1

Web APIは、クライアントが取得したいものに最も適した表現を返すことを意味するコンテンツネゴシエーションを実行します。ただし、XML文書をJSON表現に直接変換するための機能は組み込まれていません。 – marcind

関連する問題