Kann SerializeXmlNode in Json.NET erweitert werden, um Zahlen zu erkennen?

Ich konvertiere von XML nach JSON mitSerializeXmlNode. Es sieht so aus, als ob das erwartete Verhalten darin besteht, alle XML-Werte in Zeichenfolgen zu konvertieren, aber ich möchte gegebenenfalls echte numerische Werte ausgeben.

// Input:   <Type>1</Type>
string json = JsonConvert.SerializeXmlNode(node, Newtonsoft.Json.Formatting.Indented, true);
// Output:  "Type": "1"
// Desired: "Type": 1

Muss ich einen benutzerdefinierten Konverter schreiben, um dies zu tun, oder gibt es eine Möglichkeit, sich an den entsprechenden Stellen über Delegaten in den Serialisierungsprozess einzuklinken? Oder muss ich meinen eigenen Brauch schreiben?JsonConverter Klasse, um den Übergang zu verwalten?

Regex Hack

Angesichts der Komplexität einer geeigneten Lösung ist hier eine andere (auf die ich nicht ganz stolz bin, die aber funktioniert ...).

// Convert to JSON, and remove quotes around numbers
string json = JsonConvert.SerializeXmlNode(node, Newtonsoft.Json.Formatting.Indented, true);

// HACK to force integers as numbers, not strings.
Regex rgx = new Regex("\"(\\d+)\"");
json = rgx.Replace(json, "$1");

Antworten auf die Frage(1)

Ihre Antwort auf die Frage