On Wed, Mar 1, 2023 at 11:44 AM juan carlos morales <
dev.juan.mora...@gmail.com> wrote:

> Hello Internals.
>
> I am thinking about improving the json_validate() function developed
> for php 8.3.
>
> The actual descriptions goes like this:
>
> json_validate(string $json, int $depth = 512, int $flags = 0): bool
>
> I am thinking about enhancing this function to also be able to
> validate against a JSON SCHEMA, giving us something like this:
>
> json_validate(string $json, int $depth = 512, int $flags = 0, string
> $json_schema = null): bool
>
> so, if the string is a valid JSON and also respects the schema ... then
> TRUE.
>
> What do you think ?
>
>
I'm actually working on this. Currently developing the schema parsing in
pure C implementation in my play C tool called jso. You can see progress
here: https://github.com/bukka/jso/commits/next . The plan is to develop it
inside jso and then port it to jsond and then propose it for json ext
inclusion (that's how I developed the current parser). There is a lot of to
do as JsonSchema is quite complex (composition, JSON pointers, stream
integration for external pointers and more tricky bits) so this won't
likely be ready for 8.3 but should be ready for 8.4. I plan to introduce
some smaller things for 8.3 like better error reporting (error location
which I have already working in jso) and some other small additions. By the
way, the schema support won't be useful just for validation but also for
decoding and possibly encoding (sort of replacement for JsonSerializable).
Especially for decoding it can be further extended to allow class mapping.
We could also provide automatic generation of schema from class and support
attributes. I plan to propose all of this later as well but that might take
some time.

Regards

Jakub

Reply via email to