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