Sto utilizzando la libreria JSON.Net (Newtonsoft) con C# e voglio personalizzare una singola parte della sua conversione XML predefinita.Conversione personalizzata da JSON a XML utilizzando JSON.Net
Per esempio, se volevo cambiare la conversione XML di array, che dire ho la seguente stringa JSON:
{
"object":
{
"a":
{
[
"d",
"e",
"f"
]
}
}
}
Se converto a XML utilizzando convertitore di default di JSON.Net, ottengo:
<object>
<a>d</a>
<a>e</a>
<a>f</a>
</object>
Ma, voglio che convertire in:
<object>
<a special:type="array">
<element>d</element>
<element>e</element>
<element>f</element>
</a>
</object>
Posso in qualche modo prendere l'esistente metodo di conversione e cambiarlo un po '?
Sia XML che JSON sono strutture ad albero, che dovrebbero rendere modulari i parser. Così sto cercando una classe che posso usare per sostituire la sua funzione di conversione nello spirito di:
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);
}
(sto usando Net v2.0)
qualcuno sa tutto ciò che può Aiuto?
Non riesco a vedere alcun modo per eseguire l'override di ciò che è necessario nella classe XmlNodeConverter. Probabilmente dovrai creare il tuo erede di JsonTextWriter e passarlo a XmlNodeConverter. – Brannon