JSON

Door Koen Vlaswinkel, 6 jaar geleden, 26.422x bekeken

JSON wordt gebruikt voor veel APIs, en ik zal daar op ingaan nadat ik algemene informatie over JSON heb gegeven. Daarna zal ik ingaan op hoe je zelf JSON kan genereren, en dat dan ook in de context van OOP. JSON is beschikbaar vanaf PHP 5.2, maar in PHP 5.4 is er een heleboel toegevoegd, dus ik zal het vermelden als het nieuw is.

Gesponsorde koppelingen

Inhoudsopgave

  1. JSON syntax
  2. Toepassingen van JSON
  3. JSON parsen
  4. Wat is het weer?
  5. JSON genereren
  6. OOP?
  7. En verder?

 

Er zijn 12 reacties op 'Json'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Kris Peeters
Kris Peeters
6 jaar geleden
 
0 +1 -0 -1
Mooi.

Er is 1 ding dat ik extra zou uitleggen, bij dit commentaar:
>> Je kan objecten genereren door middel van een associative array, dus op de volgende manier:

Het punt is: php gaat veel te los om met het begrip array. Wat php een array noemt, zouden de meeste talen in geen 1000 jaar een array noemen.
Een echte array is zoals een ladder. Je begint onderaan, je slaat geen tredes over; je geeft de tredes geen naam. Allemaal regels die volledig logisch zijn, maar php slaat ze allemaal in de wind
Ozzie PHP
Ozzie PHP
6 jaar geleden
 
0 +1 -0 -1
Leuke tutorial Koen. Wat ik me wel afvraag is wanneer, in welke situaties, JSON van toepassing is. Wordt het alleen gebruikt om informatie tussen verschillende websites uit te wisselen en om API's te "voeden" met informatie, of kan het ook nuttig zijn op een "normale" website zonder API's? Bij een "normale" website (dus zonder API's en externe informatie) lijkt het me logischer om uitsluitend PHP objecten en arrays te gebruiken. Of zijn hier ook situaties te bedenken waarbij JSON de voorkeur heeft?
Wouter J
Wouter J
6 jaar geleden
 
0 +1 -0 -1
JSON kan ook gebruikt worden als database en als configuration file. Denk bijv. aan composer.json, bower.json en packages.json
Ozzie PHP
Ozzie PHP
6 jaar geleden
 
0 +1 -0 -1
@Wouter: oké thanks. Wat betreft configuratiefile is het dan dus eigenlijk vergelijkbaar met bijvoorbeeld YAML neem ik aan?
Kris Peeters
Kris Peeters
6 jaar geleden
 
0 +1 -0 -1
@Ozzie
Vergeet niet dat JSON javascript is. Van daar de J in de naam. Het is dus wel vrij logisch dat het gebruikt wordt bij Ajax.
Maar los daarvan: ik kan me geen notatie voorstellen die efficiënter is dan JSON.
Het is een beetje zoals xml, maar waar je die tags niet constant moet schrijven, wat dus je data heel sterk verkleint.
Dus, wat mij betreft, gebruik je het overal waar het je zinnig lijkt.
Ozzie PHP
Ozzie PHP
6 jaar geleden
 
0 +1 -0 -1
@Kris: ah oke thanks. Ik vind zelf YAML wel prettig (om zelf te schrijven).
Wouter J
Wouter J
6 jaar geleden
 
1 +1 -0 -1
Yaml en JSON zijn inderdaad wel te vergelijken. JSON wordt wat vaker gebruikt in kleine libraries en tools, aangezien je dan niet een hele library hoeft in te laden om de config te parsen.

JSON en XML zijn zeker niet gelijk. XML heeft veel, heel veel, meer features.
Ozzie PHP
Ozzie PHP
6 jaar geleden
 
0 +1 -0 -1
Okeej, thanks!
Koen Vlaswinkel
Koen Vlaswinkel
6 jaar geleden
 
Ik heb de tutorial nog wat verbeterd n.a.v. de tips die Wouter me in een PM heeft gestuurd.
Ozzie PHP
Ozzie PHP
6 jaar geleden
 
1 +1 -0 -1
Netjes! Mooie tutorial, en de opmerkingen die hierboven zijn besproken komen ook erin terug. Nice :-)
Martijn Wieringa
Martijn Wieringa
6 jaar geleden
 
0 +1 -0 -1
Nadeel van de ingebouwde JSON_ENCODE() en JSON_DECODE() functies geven vaak problemen met speciale karakters. Zo geven euro tekens in de data vaak veel problemen.

Hoe biedt UTF-8 of UNICODE hier een oplossing in?
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Mebus  Hackintosh
Mebus Hackintosh
3 jaar geleden
 
Je kan sinds kort JSON data ook direct op slaan in een mysql database, maar php/mysql lopen wat dat betreft best ver achter in vergelijking met nodejs.

JSON is ook erg handig met single page apps, vooral met een JavaScript framework zoals angular. Als je een goede setup hebt kan je best veel rendering aan de client kant laten doen, dit scheelt dataverkeer en cpu gebruik van de server :)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.