TechFool
TechFool

Reputation: 107

Generate JSON SCHEMA Manally using java code+GSON without any POJO

I want to create JSON Schema manually using GSON but i dont find any JsonSchema element support in GSON. I dont want to convert a pojo to schema but want to create schema programatically . Is there any way in GSON ? May be something like following.

 **1 JsonSchema schema = new JsonSchema();
 2 schema.Type = JsonSchemaType.Object;
 3 schema.Properties = new Dictionary<string, JsonSchema>
 4{
 5    { "name", new JsonSchema { Type = JsonSchemaType.String } },
 6    {
 7        "hobbies", new JsonSchema
 8        {
 9            Type = JsonSchemaType.Array,
10            Items = new List<JsonSchema> { new JsonSchema { Type = JsonSchemaType.String } }
11        }
12    },
13};**

Upvotes: 1

Views: 2893

Answers (2)

Albert Gevorgyan
Albert Gevorgyan

Reputation: 191

I tried to build a schema as suggested above, see Everit schema builder includes unset properties as null

Upvotes: 0

erosb
erosb

Reputation: 3141

You may consider using everit-org/json-schema for programmatically creating JSON Schemas. Although it is not properly documented, its builder classes form a fluent API which lets you do it. Example:

Schema schema = ObjectSchema.builder()
    .addPropertySchema("name", StringSchema.builder().build())
    .addPropertySchema("hobbies", ArraySchema.builder()
        .allItemSchema(StringSchema.builder().build())
        .build())
    .build();

It is slightly different syntax than what you described, but it can be good for the same purpose.

(disclaimer: I'm the author of everit-org/json-schema)

Upvotes: 4

Related Questions