Falscher Return-Type in JSON::decode

  • Betroffene Version
    WoltLab Suite 5.5
    Betroffene App
    WoltLab Suite Core

    Hallo zusammen,

    mein VSCode meckert, wenn ich JSON::decode($reply['body'], false); aufrufe und auf einen Parameter des zurückgegebenen Objekts zugreife.

    Zitat

    Expected type 'object'. Found 'array'.

    Das liegt daran, weil in JSON::decode der Return-Type fest auf array steht, obwohl die Methode es auch zulässt ein Objekt statt eines Arrays zurückzugeben.

    VG,

    Daniel

    Entwicklung und Design moderner Webapplikationen

    kostenloser Support • Vorschläge teilen • Plugins kaufen

    Darkwood.Design

  • Tim Düsterhus 14. November 2022 um 11:52

    Hat das Label Wird nicht behoben hinzugefügt.
    • Offizieller Beitrag

    Hallo,

    die Dekodierung von JSON in ein Objekt anstatt eines Arrays bringt keine Vorteile, nur Nachteile: Nicht jeder gültige JSON-String ist darstellbar, wenn man in ein Objekt dekodiert:

    p8Tnc - created on 3v4l.org
    View the output of this script on 3v4l.org: the online PHP shell with 250+ PHP versions
    3v4l.org

    Auch ist der Zugriff auf numerische Indices nur inkonsistent möglich:

    YPXdh - created on 3v4l.org
    View the output of this script on 3v4l.org: the online PHP shell with 250+ PHP versions
    3v4l.org

    In WoltLab Suite 6.0 werden wir nach aktuellem Plan Valinor mitliefern. Valinor erlaubt es, Eingabedaten (u.a. in Form von JSON) in eine wohldefinierte und typisierte Datenstruktur zu parsen. Ab dann wird Valinor die empfohlene Methode zum JSON-Parsing strukturierter Daten sein.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!