Comments (5)
The first argument has to be a Map
, a filename won't work there. The reason is to keep the library free of dependencies like a JSON parser, and leave that choice to the user. If you're dealing with JSON payloads that you want to validate, you are bound to have a JSON parser around anyway.
Please have a look at the README for some usage examples.
from ex_json_schema.
@jonasschmidt You missed an important bit. I am not talking about json encoded strings at all. If I have a schema that expects a string (a string, not json) then things are fine. If I have a schema that expects a map and I pass it a string (because I am taking input from a user or some such) again not a json encoded string, then I get an exception rather than an error about not matching the schema.
from ex_json_schema.
Oh, ok. I misunderstood your question because in your code sample it looked like you were passing a string as the schema. Then it does indeed seem like there's a problem somewhere, I just can't see it yet. Your schema looks correct, and if I try validating a string against that schema, it gives me the correct result:
iex(2)> schema = %{"type" => "object", "$schema" => "http://json-schema.org/draft-04/schema", "id" => "<obsfuscated>", "properties" => %{"id" => %{"type" => "string", "pattern" => "^[0-9]{8}$"}, "name" => %{"type" => "string"} }, "required" => ["id"] }
%{"$schema" => "http://json-schema.org/draft-04/schema",
"id" => "<obsfuscated>",
"properties" => %{"id" => %{"pattern" => "^[0-9]{8}$", "type" => "string"},
"name" => %{"type" => "string"}}, "required" => ["id"], "type" => "object"}
iex(3)> ExJsonSchema.Validator.validate(schema, "foo")
{:error, [{"Type mismatch. Expected Object but got String.", "#"}]}
from ex_json_schema.
Actually, I just remembered that this issue was fixed in v0.4.0
(original issue is here: #5). I was thinking in a wrong direction because of the misunderstanding with the schema. Just upgrade to v0.4.0
and your problem should go away :)
from ex_json_schema.
Ok. excellent. Thanks.
from ex_json_schema.
Related Issues (20)
- Add contributors with merge rights HOT 1
- Warning messages when running with Elixir 1.9.1 & OTP 22 HOT 2
- Intent to implement: custom string validation HOT 1
- Changelog HOT 2
- IO.inspect in hex package HOT 2
- Examples on usage HOT 3
- Error on extra attributes? HOT 1
- Elixir 1.11 deprecations HOT 1
- Feature request: make enum, properties, propertyNames and additionalProperties (or the actual schema) available for custom errors HOT 4
- Support custom formats for non-string types HOT 5
- I cant see why I'm getting this error
- Any plans to support 2019 and 2020 ? HOT 6
- Issue with oneOf when used in conjunction with pattern HOT 7
- No support for dependentRequired HOT 2
- Make schema domain configurable HOT 1
- Error line number HOT 1
- Handling refs in a schema HOT 3
- Extending Vocabularies HOT 1
- How to validate a schema itself? HOT 4
- feature request: uuid format validator HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ex_json_schema.