It's called JSON Schema, see <http://json-schema.org/>.

Try <https://github.com/tdegrunt/jsonschema>.

The schema for your instance would be something like:

{ type: "object"
, properties:
  { "num": {type:"integer", minimum:0, maximum:2000, exclusiveMaximum:true}
  , "name": {value:"foobar"}
  }
, additionalProperties: false
}

"additionalProperties" sets the schema used for properties not covered 
elsewhere, by default any value is allowed, same thing as the empty schema 
{}. False prohibits additional properties from appearing, if that's what 
you want.

You can give your schemas a URI and then differentiate different types of 
JSON documents from each other using the media type:

PUT http://example.com/resource/1234 HTTP/1.1
Content-Type: application/json; profile=http://example.com/v1/myschema

Which is very useful for revisioning a public API.

On Thursday, February 28, 2013 6:20:48 PM UTC-7, Stephen Bartell wrote:
>
> My goal is to allow a user to specify a filter a la json. And then use the 
> filter on incoming json documents. I'm pretty much looking for an 
> implementation similar to mongodb's query command.  Maybe theres something 
> better than the mongo way, I dont know.  I just want filters defined in 
> json.
>
> For example here is a doc
>
> doc: {
>   "num": 1234,
>   "name": "foobar"
> }
>
> and here is the query:
>
> query: {"$and": [{"name": "foobar"}, {"num": {"$lt": 2000}}]} 
>
> Based on this query, my doc will pass the filter.
>
> Thanks for any help on pointing me in the right direction!
>

-- 
-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to