Gunnar Bittersmann: String in Array konvertieren

Beitrag lesen

@@dedlfix

Ein einzelner String mit Trennzeichen darin ist auch korrektes JSON. Und trotzdem wird niemand auf die Idee kommen, das ebenfalls zuzulassen, wenn es dazu keinen besonderen Grund gibt.

Dass es hier um key/value-Paare geht, sollte klargeworden sein.

Systeme, die stillschweigend Korrekturen vornehmen, statt auf Probleme aufmerksam zu machen, sind auch nicht immer der Weisheit letzter Schluss.

{"telephone": "555 1234"} ebenso zu akzeptieren wie {"telephone": ["555 1234"]} sehe ich nicht als Problem an, auf das aufmerksam gemacht werden und das korrigiert werden müsste.

Man kann verschienede Wege gehen:

  1. Die Daten bestimmen das Format. Man notiert die Daten so, wie sie nun einmal sind: eine Telefonnummer halt als einen String und nicht als Liste mit einem Eintrag (kann man auch, muss man aber nicht) – und baut die Software so, dass sie mit den Daten umgehen kann

  2. Die Software bestimmt das Datenformat. Die Software wird so gebaut, dass sie ein ganz bestimmtes Datenformat erwartet und bei Abweichungen davon mit Fehlermeldungen (im besten Fall aussagekräftige) aussteigt.

Variante 1 ist robust. Variante 2 fliegt dir bei nächster Gelegenheit um die Ohren.

Die robuste Variante bei mir letztens so aus: Ausgabe der Telefonnummer(n) in einer Tabellenzelle:

if (subEvent.location && subEvent.location.telephone)
{
	tCellElement.classList.add('telephone');
	tCellElement.textContent = (typeof subEvent.location.telephone === 'object') ? subEvent.location.telephone.join(', ') : subEvent.location.telephone;
}

LLAP 🖖

--
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann