I can not google that thing on json.net api reference or anywhere.
I want to create object from json schema with default values filled in.
Basically some thing like this:
var JsonSchema=JsonSchema.ReadSchemaFromSomeWhere();
dynamic DefaultObject= JsonSchema.GetDefaultObject();
Example you might see in json-schema-defaults package.
Example
var JsonSchema=JsonSchema.ReadSchemaFromString("
{
"title": "Album Options",
"type": "object",
"properties": {
"sort": {
"type": "string",
"default": "id"
},
"per_page": {
"default": 30,
"type": "integer"
}
}");
dynamic DefaultObject= JsonSchema.GetDefaultObject();
//DefaultObject dump is
{
sort: 'id',
per_page: 30
}
UPDATE
I want lib or api in json.net to create object with default values from any given valid json schema during runtime.
Well a simple case might be this
[Test]
public void Test()
{
dynamic ob = new JsonObject();
ob["test"] = 3;
Assert.That(ob.test, Is.EqualTo(3));
}
I used the RestSharp library that provides a good dynamic implementation that allows indexing ["test"];
So then - what You're left to do is read the properties from the schema and assign values (of course this will work only for simple plain case`s, but might be a start
dynamic ob = new JsonObject();
foreach (var prop in JsonSchema.Properties)
{
if (prop.Default != null)
ob[prop.Name] = prop.Default
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With