El vie, 29 jul 2022 a las 22:18, David Rodrigues (<david.pro...@gmail.com>)
escribió:

> I was about to say NO, but after being completely your argument, the idea
> makes sense.
>
> Initially I thought about using json_decode() with error capture, but the
> idea that it would overload memory makes perfect sense, compared to a
> simple structure analysis, if that is indeed the user's intention. The
> performance would also be absurdly better.
>
> What worries me above is the misuse of the function, like checking if
> is_json() === true and using json_decode() right after. However, I believe
> this can be easily optimized by the engine itself.
>
> My vote is YES.
>
>
> Atenciosamente,
> David Rodrigues
>
>
> Em sex., 29 de jul. de 2022 às 16:32, Michał Marcin Brzuchalski <
> michal.brzuchal...@gmail.com> escreveu:
>
> > Hi Juan,
> >
> > pt., 29 lip 2022, 16:26 użytkownik juan carlos morales <
> > dev.juan.mora...@gmail.com> napisał:
> >
> > > 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.
> > >
> >
> > Personally I'd vote NO.
> >
> > Cheers,
> > Michał Marcin Brzuchalski
> >
> > >
> >
>

Thanks for the feedback

*** To: Michał Marcin Brzuchalski
Thanks for the opinion, but it would be useful for me to know if there is a
reason behind the "no" that could help me get better.

*** To: David Rodrigues
Gracias. Regarding "performance", I did some benchmarks. I tested is_json()
vs json_decode() with a json-string with 1 million key-values; is_json was
100% faster than json_decode(), plus memory usage with is_json() was flat!
, yes , flat. memory_get_usage() before and after is_json() returned the
same value; with json_decode() I had to change the memory limit setting
otherwise memory reaches max allowed before finishing parsing it.

Regarding use cases, I can say that this idea came up , as in my current
company , our product heavily uses json_decode() to know if an string is a
valid json, and compromises the memory usage once in a while, plus,
performance decreases; that is why this RFC-Idea. The good thing is that I
already have something for this.

Also in stack overflow, honestly, take a look, and check how much people is
needing this.

Unit tests could heavily benefit from such a functionality.

A quick look in github for php code with a function called "is_json()"
exposes tons of projects where developers are writting their own
"is_json()" function relaying in json_decode() to make it work.

Etc.

:)

Stay in contact David. and once again, thanks!

Reply via email to