Given a JSchema schema
, to get compact formatting, you can do:
var json = JsonConvert.SerializeObject(schema, Formatting.None);
Or
using var sw = new StringWriter(CultureInfo.InvariantCulture);
using (var jsonWriter = new JsonTextWriter(sw) { Formatting = Formatting.None })
schema.WriteTo(jsonWriter);
var json = sw.ToString();
The latter could be made into an extension method, optionally taking a JSchemaWriterSettings
:
public static partial class JsonExtensions
{
public static string ToString(this JSchema schema, Formatting formatting, JSchemaWriterSettings settings = default)
{
using var sw = new StringWriter(CultureInfo.InvariantCulture);
using (var jsonWriter = new JsonTextWriter(sw) { Formatting = formatting })
if (settings == null)
schema.WriteTo(jsonWriter);
else
schema.WriteTo(jsonWriter, settings); // This overload throws if settings is null
return sw.ToString();
}
}
And then you could do:
var unversionedSchema = schema.ToString(Formatting.None);
var versionedSchema = schema.ToString(Formatting.None, new JSchemaWriterSettings { Version = SchemaVersion.Draft7 } );
Demo fiddle here.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…