I would recommend my js-schema JavaScript library. The primary motivation behind it was the same what you describe in the question. It is a simple and easy to understand notation to describe JSON schemas (or specification, if you want).
An example schema described in JSON Schema:
{
"type":"object",
"properties":{
"id":{
"type":"number",
"required":true
},
"name":{
"type":"string",
"required":true
},
"price":{
"type": "number",
"minimum":0,
"required":true
},
"tags":{
"type":"array",
"items":{
"type":"string"
}
}
}
}
and the same schema description with js-schema:
{
"id" : Number,
"name" : String,
"price" : Number.min(0),
"?tags" : Array.of(String)
}
The library is able to validate object against schemas, generate random objects conforming to a given schema, and serialize/deserialize to/from JSON Schema.