Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:118324 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 28396 invoked from network); 30 Jul 2022 12:54:25 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 30 Jul 2022 12:54:25 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id BECBB180381 for ; Sat, 30 Jul 2022 07:53:28 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-yb1-f171.google.com (mail-yb1-f171.google.com [209.85.219.171]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 30 Jul 2022 07:53:28 -0700 (PDT) Received: by mail-yb1-f171.google.com with SMTP id i62so10714079yba.5 for ; Sat, 30 Jul 2022 07:53:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=dRWA5VyTNg2W4aazz6RWGbQwnnvtNFf4CaienRP+43U=; b=eTRE0d+wBUqnr0+kSKKDzvf7fts21vkqAlVT31DazmLGbHMsN2X+Qgmfk5+qj6Xx4L XTAHwq1CEnUsXbLbNSomamxgxsvkwOLTkXRrPWFxfQELA2+iJzusbhwo8WvQPPF0Krk+ 9Z9A4EzDgp/7Mv6JJ2IcqazG1vm6dVSx8LMbQW61eSDdEtMK9GFlDwcJFZu8LrnmeWFs W/hF6Q54EdRrYTViErmmzB5tzakATPkvLcSDQOF9Sne71Ro0GqYsv1QqJ0r0tcLNggpY vjzf/WWVUqkbcibhEHNnBcWrwWYN2Fp55WE7hQiYDgyTypyHmGf1DkiROvM4iE1qNeAK RM7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=dRWA5VyTNg2W4aazz6RWGbQwnnvtNFf4CaienRP+43U=; b=PoAGY0utb/9RHGxWmRy+wH4rEbySXXnpTwZSXKC9HGKok100ygbcia9KjYsVpTmRit MYfoi+bY1r+xtsEcqc6c6VRbf0ZkgucCd6t+TF/NLvZa/ZuQyOsNoWTVbxtvExnTVdpX SDwiRLmJuVy/cxSC4ZUbPImeV7/HApvzQRFVyz0UgHRzK0N/zszd7HvVF7d5YYGt5BqF fZfnBAxSMB64gUJjWbL0DChCea8pZ3WTNmHrKothP34KU0xyskpiwrqFvMfiFP2rcFrc DABKTfN9bBChpJcpaipvDMjbaeEw3P3gSJble1ZGH1hKFvUFBQ07Ia783+F099ZJ2E53 3bLw== X-Gm-Message-State: ACgBeo1KY2rBYec4+F3bpTq6xGTSbLIwnNXuKpOi9ya9cXCF+dTDJDRr +a2G9IwRnhJJQYgxmcE7mS/pcW5qTTh+okXFk4rcmUT9opc= X-Google-Smtp-Source: AA6agR6WC4NcvMM+7JHMX3x8yVIWRmTOiLJXict647UZ86P10D+iiym/oX+S997rzwiitEvflDT3O0lA1z1zqQzc18U= X-Received: by 2002:a25:72c6:0:b0:676:a515:521 with SMTP id n189-20020a2572c6000000b00676a5150521mr5919052ybc.72.1659192807857; Sat, 30 Jul 2022 07:53:27 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Sat, 30 Jul 2022 16:53:16 +0200 Message-ID: To: David Gebler Cc: Nikita Popov , PHP internals Content-Type: multipart/alternative; boundary="000000000000ed20d605e506ed03" Subject: Re: [PHP-DEV] RFC Idea - is_json - looking for feedback From: dev.juan.morales@gmail.com (juan carlos morales) --000000000000ed20d605e506ed03 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable El s=C3=A1b., 30 de julio de 2022 16:48, David Gebler escribi=C3=B3: > > > On Sat, Jul 30, 2022 at 3:01 PM Nikita Popov wrote= : > >> On Fri, Jul 29, 2022 at 4:27 PM juan carlos morales < >> dev.juan.morales@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 creati= ng >> > 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 usag= e > 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 ha= ve > 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, a= nd >> > nothing else. >> > >> > # Do we need something like this? If a check to an string is valid JSO= N >> > 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 t= o >> > 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 f= or >> > something like this in an efficient way. >> > >> >> Could you please give some specific examples where the proposed >> functionality would be useful? >> >> Regards, >> Nikita >> > Thanks everybody for the feedback. I think I got to a point that I need to write another e-mail with all my arguments and use cases for this. That is why I kindly ask you all for patience, and I Will write again soon. It will be a long e-mail for sure, and when It comes , I ask you all to take the time to read it. Thanks in advance. > --000000000000ed20d605e506ed03--