(Newtonsoft の) JSON.Net ライブラリを C# で使用しており、デフォルトの XML 変換の一部をカスタマイズしたいと考えています。
たとえば、配列の XML 変換を変更したい場合、次の JSON 文字列があるとします。
{
"object":
{
"a":
{
[
"d",
"e",
"f"
]
}
}
}
JSON.Net のデフォルト コンバーターを使用して XML に変換すると、次のようになります。
<object>
<a>d</a>
<a>e</a>
<a>f</a>
</object>
しかし、私はそれを次のように変換したい:
<object>
<a special:type="array">
<element>d</element>
<element>e</element>
<element>f</element>
</a>
</object>
どうにかして既存の変換方法を採用し、少し変更することはできますか?
XML と JSON はどちらもツリーベースの構造であるため、パーサーをモジュール化する必要があります。したがって、次の精神で変換関数をオーバーライドするために使用できるクラスを探しています。
protected override XmlNode ToXmlNode(JsonNode jNode)
{
if (jNode.Type == JsonType.Array)
{
XmlNode xNode = this.XDocument.CreateElement(jNode.Name)
foreach (JsonNode jSub in jNode.Children)
{
var newJSub = jSub.Clone();
newJSub.Name = "element";
xNode.AppendChild(this.ToXmlNode(newJSub));
}
return xNode;
}
else
return base.ToXmlNode(jNode);
}
(私は.Net v2.0を使用しています)
誰かが助けることができる何かを知っていますか?