Problem
The C# Newtonsoft renderer generates converters that serialize integer enum values as strings instead of numbers.
Given a schema with:
{ "decimation": { "type": "number", "enum": [0, 1, 3, 7, 15] } }
The generated converter does:
// ReadJson
var value = serializer.Deserialize<string>(reader);
switch (value)
{
case "0": return Decimation.The0;
...
}
// WriteJson
case Decimation.The0:
serializer.Serialize(writer, "0"); // writes "0" (string) instead of 0 (number)
Root Cause
The enum serialization goes through the transformation pipeline (emitDecodeTransformer/emitTransformer in NewtonSoftCSharpRenderer.ts) which hardcodes Deserialize<string>. This is deeply integrated and needs a larger refactor to support typed enum values.
Expected Behavior
Integer enums should serialize as JSON numbers (7) not strings ("7").
Problem
The C# Newtonsoft renderer generates converters that serialize integer enum values as strings instead of numbers.
Given a schema with:
{ "decimation": { "type": "number", "enum": [0, 1, 3, 7, 15] } }The generated converter does:
Root Cause
The enum serialization goes through the transformation pipeline (
emitDecodeTransformer/emitTransformerinNewtonSoftCSharpRenderer.ts) which hardcodesDeserialize<string>. This is deeply integrated and needs a larger refactor to support typed enum values.Expected Behavior
Integer enums should serialize as JSON numbers (
7) not strings ("7").