Hi  All,

As per the offline discussion we had the json objects should be wrapped
with a root element when generating the schema hence, please find the below
implementation details;

Input:

{
   "Order":{
       "orderId":"ee1a9ec2-c8a5-4afe-8585-74df591f9990",
       "additions":"Chocolate Chip Cookies"
   }
}

Schema:

{
  "$schema" : "http://json-schema.org/draft-04/schema#";,
  "nullable" : "false",
  "id" : "http://wso2jsonschema.org";,
  "title" : "root",
  "type" : "object",
  "properties" : {
    "Order" : {
      "nullable" : "false",
      "id" : "http://wso2jsonschema.org/Order";,
      "type" : "object",
      "properties" : {
        "additions" : {
          "nullable" : "false",
          "id" : "http://wso2jsonschema.org/Order/additions";,
          "type" : "string"
        },
        "orderId" : {
          "nullable" : "false",
          "id" : "http://wso2jsonschema.org/Order/orderId";,
          "type" : "string"
        }
      }
    }
  }
}


​Thanks,

Sohani Weerasinghe
Senior Software Engineer
WSO2, Inc: http://wso2.com

Mobile  : +94 716439774
Blog     :http://christinetechtips.blogspot.com/
Twitter  : https://twitter.com/sohanichristine

On Tue, May 31, 2016 at 4:56 PM, Sohani Weerasinghe <[email protected]> wrote:

> Hi All,
>
> Based on the above discussion, I need to finalize the JSON schema format
> generated for below use cases.
>
> 1. When the root element is an array
>
> Input:
>
> [
> "777925",
> "732321"
> ]
>
> Json Schema :
>
> {
>   "$schema" : "http://json-schema.org/draft-04/schema#";,
>   "id" : "http://wso2jsonschema.org";,
>   "title" : "root",
>   "type" : "array",
>   *"items" : [ {*
> *    "id" : "http://wso2jsonschema.org/0 <http://wso2jsonschema.org/0>",*
> *    "type" : "string"*
> *  } ]*
> }
>
>
> 2. When the root element is an array of objects where object has elements
>
> Input:
>
> [
>    {
>      "id": 0,
>      "species": "Capra hircus",
>      "name": "Goat"
>    },
>    {
>      "id": 1,
>      "species": "Panthera pardus",
>      "name": "Leopard"
>    },
>    {
>      "id": 2,
>      "species": "Equus zebra",
>      "name": "Zebra"
>    }
>  ]
>
> Json Schema :
>
> {
>   "$schema" : "http://json-schema.org/draft-04/schema#";,
>   "id" : "http://wso2jsonschema.org";,
>   "title" : "root",
>   "type" : "array",
>   "items" : [ {
>     "id" : "http://wso2jsonschema.org/0";,
>     "type" : "object",
>     "properties" : {
>      * "species" : {*
> *        "id" : "http://wso2jsonschema.org/0/species
> <http://wso2jsonschema.org/0/species>",*
> *        "type" : "string"*
> *      },*
> *      "name" : {*
> *        "id" : "http://wso2jsonschema.org/0/name
> <http://wso2jsonschema.org/0/name>",*
> *        "type" : "string"*
> *      },*
> *      "id" : {*
> *        "id" : "http://wso2jsonschema.org/0/id
> <http://wso2jsonschema.org/0/id>",*
> *        "type" : "number"*
> *      }*
> *    }*
>   } ]
> }
>
>
> *​Since this object does not wrap with a root element, is the visual
> representation correct for this type of a payload?*
>
> 3. When root element is an array of objects and the object is wrapped with
> another object
>
> Input:
> [
>   { "test":{
>      "id": 0,
>      "species": "Capra hircus",
>      "name": "Goat"
>    }
> },
>  { "test":{
>      "id": 0,
>      "species": "Capra hircus",
>      "name": "Goat"
>    }
> }
>  ]
>
> Json Schema:
>
> {
>   "$schema" : "http://json-schema.org/draft-04/schema#";,
>   "id" : "http://wso2jsonschema.org";,
>   "title" : "root",
>   "type" : "array",
>   "items" : [ {
>     "id" : "http://wso2jsonschema.org/0";,
>     "type" : "object",
>     "properties" : {
>    *   "test" : {*
> *        "id" : "http://wso2jsonschema.org/0/test
> <http://wso2jsonschema.org/0/test>",*
> *        "type" : "object",*
> *        "properties" : {*
> *          "species" : {*
> *            "id" : "http://wso2jsonschema.org/0/test/species
> <http://wso2jsonschema.org/0/test/species>",*
> *            "type" : "string"*
> *          },*
> *          "name" : {*
> *            "id" : "http://wso2jsonschema.org/0/test/name
> <http://wso2jsonschema.org/0/test/name>",*
> *            "type" : "string"*
> *          },*
> *          "id" : {*
> *            "id" : "http://wso2jsonschema.org/0/test/id
> <http://wso2jsonschema.org/0/test/id>",*
> *            "type" : "number"*
> *          }*
> *        }*
>       }
>     }
>   } ]
> }
>
>
> Apart from the above samples, can there be a sample where the root element
> is an array of different objects ?
>
> eg:
>
> [
>   { "test1":{
>      "id": 0,
>      "species": "Capra hircus",
>      "name": "Goat"
>    }
> },
>  { "test2":{
>      "id": 0,
>      "species": "Capra hircus",
>      "name": "Goat"
>    }
> }
>  ]
>
> If that's the case, is the below json schema correct?
>
>
> {
>    "$schema":"http://json-schema.org/draft-04/schema#";,
>    "id":"http://wso2jsonschema.org";,
>    "title":"root",
>    "type":"array",
>    "items":[
>       {
>          "id":"http://wso2jsonschema.org/0";,
>          "type":"object",
>          "properties":{
>             "test1":{
>                "id":"http://wso2jsonschema.org/0/test";,
>                "type":"object",
>                "properties":{
>                   "species":{
>                      "id":"http://wso2jsonschema.org/0/test/species";,
>                      "type":"string"
>                   },
>                   "name":{
>                      "id":"http://wso2jsonschema.org/0/test/name";,
>                      "type":"string"
>                   },
>                   "id":{
>                      "id":"http://wso2jsonschema.org/0/test/id";,
>                      "type":"number"
>                   }
>                }
>             },
>             "test2":{
>                "id":"http://wso2jsonschema.org/0/test";,
>                "type":"object",
>                "properties":{
>                   "species":{
>                      "id":"http://wso2jsonschema.org/0/test/species";,
>                      "type":"string"
>                   },
>                   "name":{
>                      "id":"http://wso2jsonschema.org/0/test/name";,
>                      "type":"string"
>                   },
>                   "id":{
>                      "id":"http://wso2jsonschema.org/0/test/id";,
>                      "type":"number"
>                   }
>                }
>             }
>          }
>       }
>    ]
> }
>
> Appreciate your input on this
>
> Thanks,
> Sohani
> ​
>
> Sohani Weerasinghe
> Senior Software Engineer
> WSO2, Inc: http://wso2.com
>
> Mobile  : +94 716439774
> Blog     :http://christinetechtips.blogspot.com/
> Twitter  : https://twitter.com/sohanichristine
>
> On Wed, May 25, 2016 at 2:51 PM, Sohani Weerasinghe <[email protected]>
> wrote:
>
>>
>>
>> Sohani Weerasinghe
>> Software Engineer
>> WSO2, Inc: http://wso2.com
>>
>> Mobile  : +94 716439774
>> Blog     :http://christinetechtips.blogspot.com/
>> Twitter  : https://twitter.com/sohanichristine
>>
>> On Wed, May 25, 2016 at 2:48 PM, Nuwan Pallewela <[email protected]> wrote:
>>
>>> Hi Sohani,
>>>
>>> On Wed, May 25, 2016 at 11:03 AM, Sohani Weerasinghe <[email protected]>
>>> wrote:
>>>
>>>> Hi All,
>>>>
>>>> Since there can be JSON payloads without a root element as shown below,
>>>> we are in a process of generating the JSON schema for such payloads. Please
>>>> find the implementation details
>>>>
>>>> eg 1:
>>>>
>>>> *Input*:
>>>>
>>>> [
>>>> "777925",
>>>> "732321"
>>>> ]
>>>>
>>>> *JSON schema:*
>>>>
>>>> {
>>>>   "$schema" : "http://json-schema.org/draft-04/schema#";,
>>>>   "id" : "http://wso2jsonschema.org";,
>>>>   "title" : "root",
>>>>   "type" : "array",
>>>>   "items" : {
>>>>     "id" : "http://wso2jsonschema.org/0";,
>>>>     "type" : "string"
>>>>   }
>>>> }
>>>>
>>>>
>>>> I think this primitive array should be able to map.
>>>  Yes, This should be able to map and I'm in a process of implementing it
>>>
>> ​eg 2:
>>>>
>>>> *Input*:
>>>>
>>>> [
>>>>    {
>>>>      "id": 0,
>>>>      "species": "Capra hircus",
>>>>      "name": "Goat"
>>>>    },
>>>>    {
>>>>      "id": 1,
>>>>      "species": "Panthera pardus",
>>>>      "name": "Leopard"
>>>>    },
>>>>    {
>>>>      "id": 2,
>>>>      "species": "Equus zebra",
>>>>      "name": "Zebra"
>>>>    }
>>>>  ]
>>>>
>>>> *JSON Schema:*
>>>>
>>>> {
>>>>   "$schema" : "http://json-schema.org/draft-04/schema#";,
>>>>   "id" : "http://wso2jsonschema.org";,
>>>>   "title" : "root",
>>>>   "type" : "array",
>>>>   "items" : {
>>>>     "id" : "http://wso2jsonschema.org/0";,
>>>>     "type" : "object",
>>>>     "properties" : {
>>>>       "species" : {
>>>>         "id" : "http://wso2jsonschema.org/0/species";,
>>>>         "type" : "string"
>>>>       },
>>>>       "name" : {
>>>>         "id" : "http://wso2jsonschema.org/0/name";,
>>>>         "type" : "string"
>>>>       },
>>>>       "id" : {
>>>>         "id" : "http://wso2jsonschema.org/0/id";,
>>>>         "type" : "number"
>>>>       }
>>>>     }
>>>>   }
>>>> }
>>>>
>>>>
>>>> ​Thanks,
>>>> Sohani
>>>>
>>>> Sohani Weerasinghe
>>>> Software Engineer
>>>> WSO2, Inc: http://wso2.com
>>>>
>>>> Mobile  : +94 716439774
>>>> Blog     :http://christinetechtips.blogspot.com/
>>>> Twitter  : https://twitter.com/sohanichristine
>>>>
>>>
>>>
>>>
>>> --
>>> ----------------------------------------------------------
>>>
>>> *Nuwan Chamara Pallewela*
>>>
>>>
>>> *Software Engineer*
>>>
>>> *WSO2, Inc. *http://wso2.com
>>> *lean . enterprise . middleware*
>>>
>>> Email   *[email protected] <[email protected]>*
>>> Mobile  *+94719079739 <%2B94719079739>@*
>>>
>>>
>>>
>>
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to