webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> porady >> javascript

Co to jest JSON?

autor: Patryk 'yarpo' Jar, ostatnia modyfikacja: 2007-09-07

szukaj: JSON JSON Java Script Object Notation Java Script Object Notation XML XML  AJAX AJAX JS JS

JSON, to nie tyle technologia czy nowy język co inne spojrzenie na to co już istnieje. Być może nawet samo odkodowanie tego skrótu da już nam dużo więcej informacji: "Java Script Object Notation", czyli format wymiany danych, podobnie jak XML. Jednak XML (eXtensible Markup Language) ma w porównaniu z JSONem [wymawiane jak angielskie imię "dżejson"] jeden minus – do jego wykorzystania w projektach webmasterkich najczęściej potrzebujemy dodatkowych klas i obiektów (o czym więcej w poradzie klasa ObjTree).

JSON w JS może być szybko przetworzony w JS za pomocą funkcji eval(). Może zatem przykład danych:

(najpierw – trochę bardziej zrozumiałe, dla webmastera, dane w formacie XML):

<?xml version="1.0" encoding="utf-8"?>
	<dane>
		<user>
			<imie>jan</imie>
			<nazwisko>Kowalski</nazwisko>
		</user>
		<user>
			<imie>Piotr</imie>
			<nazwisko>Nowak</nazwisko>
		</user>
	</dane>

W JSON dane takie wyglądały następująco:

{
	"dane" : {
		"user" : [
			{
			"imie" : "Jan",
			"nazwisko" : "Kowalski"
			},
			{ 
			"imie" : "Piotr",
			"nazwisko" : "Nowak"
			}
		]
	}
}

Przyjmijmy, że stosując AJAX takie dane otrzymujemy jako wynik działania skryptu na serwerze. W przypadku XML pewnie skorzystamy z metody responseXML() i następnie będziemy się bawić z odpowiednim pobieraniem danych – dla początkujące moze to być naprawdę niezbyt przyjemne (jeśli się korzysta z gołego obiektu XMLHttpRequest). W przypadku JSONa, polecałbym coś takiego:

/* 	Stworzenie obiektu XMLHttpRequest 
	wysłanie odpowiednich danych na serwer i uzykanie odpowiedzi:
*/
	var json_tekst = HTTPrequest.responseText; // uzyskuje dane w postaci ciągu znaków 
	eval("var json_obiekt = ("+json_tekst+")");

	for (i=0; i<json_obiekt.dane.user.length; i++)
		alert(	json_obiekt.dane.user[i].imie + ' ' +
			 	json_obiekt.dane.user[i].nazwisko		);  

Oczywiście to tylko drobna część możliwości JSONa. Warto jednak o nim pamiętać, jeśli przyjdzie nam robić cokolwiek z danymi otrzymywanymi z serwera [niekoniecznie naszego, coraz częściej potrzebujemy danych z „obcych” serwerów].

Warto byłoby także zapoznać się z:

Patryk 'yarpo' Jar

Osoby czytające tę publikację przeglądały również:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org