Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:100920 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 88555 invoked from network); 24 Oct 2017 00:20:38 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Oct 2017 00:20:38 -0000 Authentication-Results: pb1.pair.com smtp.mail=php@golemon.com; spf=softfail; sender-id=softfail Authentication-Results: pb1.pair.com header.from=php@golemon.com; sender-id=softfail Received-SPF: softfail (pb1.pair.com: domain golemon.com does not designate 209.85.220.175 as permitted sender) X-PHP-List-Original-Sender: php@golemon.com X-Host-Fingerprint: 209.85.220.175 mail-qk0-f175.google.com Received: from [209.85.220.175] ([209.85.220.175:56356] helo=mail-qk0-f175.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 79/A0-58908-3578EE95 for ; Mon, 23 Oct 2017 20:20:37 -0400 Received: by mail-qk0-f175.google.com with SMTP id l194so24240454qke.13 for ; Mon, 23 Oct 2017 17:20:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=golemon-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:from:date:message-id:subject:to; bh=x8NvfBRncVzfuc8oKieOL87pa3yY7pqO1Pad8iUjqzc=; b=t0ULh8CAYXEU8nPXNLJstfvsW4hNt2kP4STWNMIXFH3xmJew3O6wctz6DUWXOgn4kG /N4bRrIh74bB44qW38kopPdx6HJvvl/TrIF6F05yDEecrD3h3aC9FbbLrZvWjDxSmZLy u17fYReiePFv91vO02rpxpIZcw7B0gU3AkiJB6sm+2ueUPHnliO+fJsjKBOIZokqXgDH GJMm9ojB7+iz9m/oFXgOcWE81cuC9Bv0S0AQaARSp8QBHd/NBZ0QkUlR666tSkOGRjCs tA0dcFNk05AMqjvCcD3+qpuV/q1RUAOeUQIBaM47l/oZwmqoltLx4fsJipQik5QymlN9 DZrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=x8NvfBRncVzfuc8oKieOL87pa3yY7pqO1Pad8iUjqzc=; b=nHP2o/qSJr3ijItXQOaGew6vrxBIQhwTzpwG9Swyb5tfhp354F+V57UOjD7sg4CFhm fORoJk06wV65gLYmZqNa9Nuv/Y1yb0ITPFkz/6eVxnm623pWDP9JYLJQpjBC1pYjMf2X 5QrKZH8tF7FgXPojxn0tiZaY+Ff96198a/eVERGCYHPycH9NXJ749WEiqkcrlu8TCz85 p4h4pnmYVsh9KN1y5k+e8J+lYybJ5IwEvQuOxDKfLBqlejBgR/ri6SvXHdVqgcaxGQ7a /VeM8lk3Vnvf3xoZU7fzYYihkB6NJ1A4zFS/5MHuBmAwjFkW9MpMQK9SuXlgo+4rk4i3 AxPA== X-Gm-Message-State: AMCzsaWnTlGy5oP1/+w/rZM8mI5sqLq4YVsttey+bkbRNGvkGvpvPWFx QFUt1gNmB3QJFf7+VQuK5Qg6pLPtCbyEDaRWI6mPxjOmOL8= X-Google-Smtp-Source: ABhQp+Rav05aGHnHBHvdfaeoO5Sx6ark/bEtOmp/3fFJ6Ugo/mCnMqGrMW5RioPYZ4G0GV+Pj0xJOGERuuzAjZHz9i8= X-Received: by 10.55.18.13 with SMTP id c13mr21716219qkh.81.1508804431413; Mon, 23 Oct 2017 17:20:31 -0700 (PDT) MIME-Version: 1.0 Sender: php@golemon.com Received: by 10.12.156.1 with HTTP; Mon, 23 Oct 2017 17:20:30 -0700 (PDT) X-Originating-IP: [71.251.16.204] Date: Mon, 23 Oct 2017 20:20:30 -0400 X-Google-Sender-Auth: kjnpgnfAmx6ZDspt3rjGg5IT11M Message-ID: To: PHP internals Content-Type: text/plain; charset="UTF-8" Subject: json(Raw)Serializable? From: pollita@php.net (Sara Golemon) https://bugs.php.net/bug.php?id=75400 is asking for a version of JsonSerializable which doesn't involve deserializing/reserialzing round trips when a chunk of JSON is known in advance. It's not terribly unreasonable IMO, but before I just writeup the RFC as described (jsonRawSerialize taking preceedence over jsonSerialize), I thought I'd ask for opinions on the specifics. In psuedo-code: if (is_object($obj)) { if ($obj implements JsonRawSerializable) { // use $obj->jsonRawSerialize() as is. } elseif ($obj implements JsonSerializble) { // use json_encode($obj->jsonSerialize()) } else { // Serialize the object's public properties as a key/value map } } Perhaps with the stipulation that if jsonRawSerialize() returns null, we'd fallback on jsonSerialize(). Any other non-string results in an encoding error. -Sara