Die JavaScript Object Notation, kurz JSON [ˈdʒeɪsən], ist ein kompaktes Datenformat in einer einfach lesbaren Textform zum Zweck des Datenaustauschs zwischen Anwendungen. Jedes gültige JSON-Dokument soll ein gültiges JavaScript sein und per eval() interpretiert werden können. Aufgrund kleiner Abweichungen in der Menge der erlaubten Unicode-Zeichen ist es jedoch möglich, JSON-Objekte zu erzeugen, die von einem normkonformen JavaScript-Interpreter nicht akzeptiert werden. Davon abgesehen ist JSON aber unabhängig von der Programmiersprache. Parser existieren in praktisch allen verbreiteten Sprachen.

JSON wurde ursprünglich von Douglas Crockford spezifiziert. Aktuell wird es durch zwei konkurrierende Standards spezifiziert, RFC 8259 von Douglas Crockford und ECMA-404. (Quelle: wikipedia)

JSON Beispiele

Qlik

app.createGenericObject( {
	user: {
		qStringExpression: "=QVUser ()"
	},
	umsatz: {
		qStringExpression: "=sum([Umsatz pro Bestellzeile])"
	},
	umsatznum: {
		qValueExpression: "=sum([Umsatz pro Bestellzeile])"
	},
	author: {
		qStringExpression: "=Author"
	}
}, function ( reply ) {

	if ( reply.user ) {
		$( ".user" ).html(reply.user);
	}
	$( ".umsatz" ).html(reply.umsatz);
	$( ".author" ).html(reply.author);

});

 

Der JSON Code in diesem Beispiel:

{
 user: {
  qStringExpression: "=QVUser ()"
 },
 umsatz: {
  qStringExpression: "=sum([Umsatz pro Bestellzeile])"
 },
 umsatznum: {
  qValueExpression: "=sum([Umsatz pro Bestellzeile])"
 },
 author: {
  qStringExpression: "=Author"
 }
}

 

jQuery

$( "#slider-range" ).slider({
  range: true,
  min: 0,
  max: 500,
  values: [ 75, 300 ],
  slide: function( event, ui ) {
    $( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
  },
	stop: function( event, ui ) {
    var scrStr =  ">" + ui.values[ 0 ] + "<" + ui.values[ 1 ] ;
		app.field('Katalogpreis').selectMatch(scrStr,false);
  }
});

 

Der JSON Code in diesem Beispiel:

{
  range: true,
  min: 0,
  max: 500,
  values: [ 75, 300 ],
  slide: function( event, ui ) {
    $( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
  },
	stop: function( event, ui ) {
    var scrStr =  ">" + ui.values[ 0 ] + "<" + ui.values[ 1 ] ;
		app.field('Katalogpreis').selectMatch(scrStr,false);
  }
}

 

In diesem Beispiel werden auch Funktionen als Objekte übergeben, diese nennt man auch Callback Funktionen. Diese sind werden über Frameworks angeboten und bieten die Möglichkeit eigene Funktionen beim Aufruf einer Aktion auszuführen.

Zeile 6 „slide“ wird immer ausgeführt wenn der slider vom Anwender bewegt wird. Immer wenn das passiert können wir nun das Verhalten beeinflussen, wie

  • den Wert in einer Input Box ändern Zeile 7
  • oder einen Wert in einem Feld zu selektieren Zeile 11