Re: RFC Idea - json_validate() validate schema
| From: | juan carlos morales | Date: | Wed, 01 Mar 2023 12:22:55 +0000 |
| Subject: | Re: RFC Idea - json_validate() validate schema | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-119634@lists.php.net to get a copy of this message | ||
Jakub, wow, great to know this. thanks for writting.
Ok, then .... I will assume that this feature will come from you
sometime in future.
Since json_validate() was announced ... I have being receiving
messages (a lot) about providing the ability to use JSON SCHEMAS as
well, hopefully we will have this in PHP in 8.4 (this will be a
shock!)
Question ... are you planning to incorporate this by enhancing
json_validate() ???
El mié, 1 mar 2023 a las 9:07, Jakub Zelenka (<bukka@php.net>) escribió:
>
> On Wed, Mar 1, 2023 at 11:44 AM juan carlos morales <dev.juan.morales@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