Volledige versie bekijken : JSON ?!? wie kan mij erover inlichten
fons
%Europe/Berlin %771 %2008, 18:30
hi, allen
Een klant (fitness centrum) van ons wil zijn site, met alle mogelijkheden die er zijn, beter gaan gebruiken.
Intern hebben ze software lopen waar alles in zit. Personeels gegevens (zo'n 100 man), leden gegevens (duizenden (?) ), ..., noem maar op.
Nu zouden zij/wij graag hun site meer op de "leden" en "niet leden" gaan richten. (m.a.w. login waarbij bv. leden persoonlijke "messages" van hun personalcoach kunnen krijgen, met verjaardagen een persoonlijk berichtje kan gezet worden, ... en voor niet leden, passanten andere berichten evt.)
Nu hebben we bericht gekregen van de firma die hun interne sofware onderhoud dat we met JSON aan de alle nodige gegevens kunnen in hun interne database.
Dit is dus onontbeerlijk gezien dagelijks - wekelijks de leden database veranderd.
Maar JSON !! Ik had er eigenlijk nog niet echt bij stilgestaan.
Ik heb al op de JSON site gekeken, een Flash extentie gevonden, ...
Maar kan iemand van jullie die er ervaring mee heeft uitleggen wat JSON juist inhoud, hoe het werkt, ...
sander1
%Europe/Berlin %851 %2008, 20:26
Hallo Fons,
JSON is net zoals XML een manier om data over te brengen. Het verschil XML<->JSON wordt op Wikipedia (http://en.wikipedia.org/wiki/JSON#XML) omschreven als:XML is often used to describe structured data and to serialize objects. Unlike JSON, however, which is simply a way to represent data structures, XML is a complete markup language. This makes XML more complex than JSON, which is specifically designed as a data interchange format, not a markup language.Op de website van verve8media (http://actionscript.verve8media.com/?p=3) vond ik een goed voorbeeld over het inlezen van JSON data in Flash. Er wordt hierbij gebruik gemaakt van de JSON klasse (http://json.org/JSON.as) die te vinden is op json.org.
In dit voorbeeld gaat men uit van een stukje JSON data dat er als volgt uit ziet:{
"firstName": "Heath",
"lastName": "Michaels",
"company name": "Verve8 Media",
"address": {
"streetAddress1": "12910 Culver Blvd",
"streetAddress2": "Suite J",
"city": "Los Angeles",
"state": "Ca",
"postalCode": 90066 },
"phoneNumbers": [ "310-555-4677", "310 555-4567"]
}Ter vergelijking, in XML zou dit er ongeveer zo uit kunnen zien:<contact>
<firstName>Heath</firstName>
<lastName>Michaels</lastName>
<companyName>Verve8 Media</companyName>
<address>
<streetAddress1>12910 Culver Blvd</streetAddress1>
<streetAddress2>Suite J</streetAddress2>
<city>Los Angeles</city>
<state>Ca</state>
<postalCode>90066</postalCode>
</address>
<phoneNumbers>
<number>310-555-4677</number>
<number>310 555-4567</number>
</phoneNumbers>
</contact>Het voorbeeld leest de JSON data in als string met behulp van Flashvars. Uiteraard kun je andere manieren kiezen om de JSON data in je Flash te krijgen.
Na verwerking levert het script dit als resulaat (http://flashvideo.damnfinecoffee.eu/misc/parse_json/parse.html). Hier vind je de FLA (http://flashvideo.damnfinecoffee.eu/misc/parse_json/parse.fla) en alle bestanden in één zip (http://flashvideo.damnfinecoffee.eu/misc/parse_json/json_class_en_voorbeeld.zip) (incl. de JSON class) die bij dit voorbeeld horen.
Ik hoop dat je zo wat wijzer bent geworden over JSON!
Sander
fons
%Europe/Berlin %886 %2008, 21:16
Thx
Ondertussen al wel wat wijzer maar ook nog veel vragen.
Hoe data uit database halen?
Waarom op deze manier dan en niet asp en xml?
Wat zijn de echte voordelen?
Op Adobe (http://www.adobe.us/cfusion/exchange/index.cfm?event=extensionDetail&loc=en_us&extid=1078469) staat trouwens een free extentie met een paar gebruiken ervan.
josko
%Europe/Berlin %566 %2008, 13:35
Hey fons.
Zoals al gezegd, JSON is een vorm van data overgooien. Maar, het is geen opmaak taal.
In feite betekent JSON dat je een stuk javascript overgooid. In javascript heb je 'literal syntax'.
Ik kan een array zo aan maken:
Var myArray = new Array ();
myArray.push (1);
myArray.push (2);
myArray.push (3);
myArray.push (4);
Maar in literal syntax is het sneller:
var myArray = [1,2,3,4];
Hetzelfde gaat voor objecten:
var myObject = new Object ();
myObject.myVar = 12;
myObject.myName = "josko";
wordt
var myObject {
myVar : 12,
myName: "josko"
}
Het voordeel van JSON tegen XML ligt meer in bestandsgroote. Bij xml lees je de xml uit,
vervolgens ga je erin zoeken en dan gebruik je die data. (eventueel orden je de data eerst
nog een keer).
Bij JSON wijs je een variable toe met de waarde van het stukje JSON text,
en vervolgens heb je een geordent object, wat sneller is dan XML.
Indien het niet in Javascript is, is het geen native meer. Het enige voordeel van JSON over xml is dan dat JSOn meestal kleiner is.
--
Hoe lees je databases uit?
Dit gebeurt dan gewoon met PHP, asp of een andere serverside taal.
Deze moet de tekst dan naar JSON formatteren, en vervolgens kan je het weer verwerken.
Overigens, ik moet zeggen dat ik zelf, als het in flash moet, véél liever XML heb.
Groetjes, josko.
fons
%Europe/Berlin %682 %2008, 16:23
Ik ben ondertussen al wat verder met de xml "light". ;)
De interne software bij de klant heeft een mogelijkheid om op request een Json object terug te geven.
Dit kan op geregelde tijdstippen om zo data te pushen in onze SQLserver db zodat wij ermee aan de slag kunnen of mooier nog, in real time. Een site bezoeker logt in op de site, de nodige gegevens worden in Json, dus snel, teruggegeven waarmee wij het nodige kunnen doen.
Dit laatste is dus nauwkeuriger in verband met reservaties met een maximum, aankopen van beperkte dingen, ... enz.
Omdat ik die dingen in een Flash "lint" (zo heet dat in Office 2007 :D ) of "heading" ga doen heb ik gisteren wat gepruld met de JSONConnector (http://flash-toys.110mb.com/json/JSONConnector_demo.php) .
Er zijn ook AS classes voor 1,2 en 3 op json.org (http://www.json.org) maar die heb ik nog niet aan de praat gekregen.
Het werkt in principe als de XMLconnector in Flash. (dat data component wat heel weinig mensen gebruikt)
Maar ik heb het met AS gebruikt. En het gaat als een fluitje van een cent.
De eerste probeersels toch. Een simpele .jso file en de zoekmachine van google gebruiken in Flash.
Zoiets als het Yahoo voorbeeld maar dan met AS en Google.
http://www.searchmash.com/results/flashfocus?i=1&n=10 geeft zo'n json object terug.
Kortom, het ziet er veel belovend uit.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.