JSON: null- und leer-Elemente

22/09/2014 - 19:24 von Julius Kavay | Report spam
Hallo,

ich habe eine 'Verstaendnisfrage' bezueglich JSON.

a) [ "a" ]
b) [ "" ]
c) [ null ]
d) [ ]

Die Beispiele a), b) und c) sind jeweils ein Array mit je einem
Element (Wert) und d) ist ein leerer Array.

Aber der (praktische) Unterschied zwischen c) und d) ist mir
noch nicht so recht klar...

Nehmen wir an, die Elemente eines JSON-Array
[ 12, "ab", [], null, 99 ]

sind Argumente fuer eine Funktion Test(a,b,c,d,e).

Wie bzw. mit welchen Werten sollte so eine Funktion aufgerufen
werden (in welcher Programmiersprache auch immer) wenn wir voraussetzen,
dass die Argumente <c> und <d> auch null-Werte (undefinierte) zulassen.

Waere der Aufruf Test(12,"ab",null,null,99) korrekt?

Danke und
Gruesse
Julius

PS:
Moechte keine theoretische Diskussion entfachen.
Entweder ich stehe auf der Leitung (dann sagts mir das)
oder es gibt eine klare und einfache Erklaerung.

(my real mail address ends with a .net tld)
 

Lesen sie die antworten

#1 Thomas PointedEars Lahn
22/09/2014 - 21:15 | Warnen spam
Julius Kavay wrote:

ich habe eine 'Verstaendnisfrage' bezueglich JSON.



Weshalb die Apostrophe und die Wortverstümmelung? Ist Dein Duden
kapott[tm], oder vielleicht Dein Newsreader?

a) [ "a" ]
b) [ "" ]
c) [ null ]
d) [ ]

Die Beispiele a), b) und c) sind jeweils ein Array mit je einem
Element (Wert) und d) ist ein leerer Array.



Für geeignete Werte von „Array“ und „Element“. Zunàchst sind es nur
Darstellungen von Listen von Werten.

Aber der (praktische) Unterschied zwischen c) und d) ist mir
noch nicht so recht klar...

Nehmen wir an, die Elemente eines JSON-Array
[ 12, "ab", [], null, 99 ]

sind Argumente fuer eine Funktion Test(a,b,c,d,e).

Wie bzw. mit welchen Werten sollte so eine Funktion aufgerufen
werden (in welcher Programmiersprache auch immer) wenn wir voraussetzen,
dass die Argumente <c> und <d> auch null-Werte (undefinierte) zulassen.



Du hast bereits festgelegt, welches die Argumente für die Funktion sein
sollen. Deine Frage ist daher sinnlos.

Waere der Aufruf Test(12,"ab",null,null,99) korrekt?



Das hàngt von der Programmiersprache und der Funktion mit dem Namen „Test“
ab.

Weiterhin ist zwischen syntaktischer und semantischer Korrektheit zu
unterscheiden: ein Funktionsaufruf kann syntaktisch korrekt sein und
trotzdem sinnlos (semantisch inkorrekt). Das ist umso wahrscheinlicher, je
dynamischer die Programmiersprache ist: werden der Typ oder die Anzahl der
Argumente zur Entwurfszeit überprüft, kann ein syntaktisch korrekter Aufruf
zu einem Kompilierfehler führen; bei dynamischer Typüberprüfung kann es nur
einen Laufzeitfehler oder unerwartetes Verhalten geben (zum Beispiel bei
unpassendem Typ und/oder impliziter Typkonvertierung in der Funktion).

PS:
Moechte keine theoretische Diskussion entfachen.



Schade; das wàre hier nàmlich on-topic.

Entweder ich stehe auf der Leitung (dann sagts mir das)
oder es gibt eine klare und einfache Erklaerung.



Du stehst auf der Leitung. Das sieht Mann[tm] auch daran, dass Du
asozialerweise Deinen Absender kapott[tm] gemacht hast.

<http://einklich.net/usenet/usenet1.htm> ff.

PointedEars
FAQ: <http://PointedEars.de/faq> | SVN: <http://PointedEars.de/wsvn/>
Twitter: @PointedEars2 | ES Matrix: <http://PointedEars.de/es-matrix>
Please do not Cc: me. / Bitte keine Kopien per E-Mail.

Ähnliche fragen