On Sat, Jul 30, 2022 at 3:01 PM Nikita Popov <nikita....@gmail.com> wrote:

> On Fri, Jul 29, 2022 at 4:27 PM juan carlos morales <
> dev.juan.mora...@gmail.com> wrote:
>
> > I am following the RFC guideline for the first time. (
> > https://wiki.php.net/rfc/howto)
> >
> > As suggested there, I am here to get a feeling from you, regarding the
> > following RFC for PHP.
> >
> > # Change (draft):
> >
> > New function in php called like:
> >
> > is_json(string $string): bool
> >
> > ## Description
> > ### Parameters
> > string $string -> string to find out if is a valid JSON or not
> >
> > ### Return
> > Returns a bool. The function is capable to determine if the passed string
> > is a valid JSON (true) or not (false).
> >
> > # Why this function ?
> >
> > At the moment the only way to determine if a JSON-string is valid we have
> > to execute the json_decode() function.
> >
> > The drawback about this, is that json_decode() generates an in memory an
> > object/array (depending on parameters) while parsing the string; this
> leads
> > to a memory usage that is not needed (because we use memory for creating
> > the object/array) and also can cause an error for reaching the
> memory-limit
> > of the php process.
>

In the last 15 years, the only time I've ever needed to know if a string is
valid JSON is if I'm about to decode or otherwise parse it as JSON. If I'm
decoding what I expect to be a large JSON blob, such that memory usage
might be a concern, personally I use
https://github.com/salsify/jsonstreamingparser but the point is userland
solutions are possible.

What I'm asking is what's the practical use for this proposed function?
Where are you likely to need to know if a string is valid JSON but not have
to (try to, with error handling) parse it almost immediately afterwards
anyway? Unless there is some fairly commonplace use case for this I'm not
thinking of, you're going to be using that extra memory, or using a
streaming parser,  at some point in your script regardless. If there is
genuine demand for it, I'd be in favour (I'm not a voting member so kind of
moot but...), otherwise I'm generally against introducing new core
functions which are either edge-case or can be perfectly well dealt with
via userland code.

Cheers

-Dave


> >
> > Sometimes we just need to know is the string is a valid json or not, and
> > nothing else.
> >
> > # Do we need something like this? If a check to an string is valid JSON
> > then for sure I will have to use it in my code either as an object or an
> > array.
> >
> > Well that is not true. There are plenty of cases where you just need to
> > check if a string is a valid json and that is it. Just looking into
> > stackoverflow will give you an idea about how many people is looking for
> > something like this in an efficient way.
> >
>
> Could you please give some specific examples where the proposed
> functionality would be useful?
>
> Regards,
> Nikita
>

Reply via email to