Problem mit JSON Fehlermeldung!

Belee

Lt. Commander
Registriert
Dez. 2006
Beiträge
1.518
Hallo Leute

Wie bekomme ich diese Fehlermeldung weg?

JSON text must be an object or array (but found number, string, true, false or null, use allow_nonref to allow this)

und...

malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "(end of string)")

Das ist die bemängelte Zeile:

my $json_obj = decode_json $json_text;

Die Abfrage:

Code:
if($$json_obj{'title'}=~m/(.*?)\s*\((.*)\)\s*(\d+)/)
    {
      # Artist, Titel, Version, Jahr
     ($$json_obj{'artist'},$1,$2,$3);
    }
    elsif($$json_obj{'title'}=~m/(.*?)\s*\((.*)\)/)
    {
      # Artist, Titel, Version, Jahr = ''
      ($$json_obj{'artist'},$1,$2,'');
    }
    else
    {
      # Artist, Titel, Version = '', Jahr = ''
      ($$json_obj{'artist'},$$json_obj{'title'},'','');
    }
  }
 
Ja, hin und wieder ist einer mal Null, wie kann ich das fixen? also das er den Fehler ignoriert, weil es wird ein Text vom Fremdserver geholt und darauf habe ich keinen Einfluß.
 
Aus NULL nen Leerstring machen oder eine 0. Kommt halt drauf an ob an der Stelle ein String oder ein Number erwartet wird.
Sowas muss vor allem die Gegenseite bereitstellen wenn die shcon nen JSON liefert.
 
Ja die Gegenseite ist Beta und die haben wohl andere Probleme. Danke, ich werde das mal versuchen, nur ist das Problem das an einer gewissen Stelle mal nichts, mal eine Zahl, mal ein String kommt, zum kotzen.
 
NULL sollte er eigentlich ignorieren und einfach nene Null draus machen
post doch mal bitte was in dem $json_text drinnensteht
Ergänzung ()

schaut ganz danach aus als hätte dies nicht das richtige format
 
Habs, so gehts: my $json_text = JSON->new->allow_nonref;

Danke!
 
Zurück
Oben