De JSON Gem

Het is gemakkelijk om te springen in parsing en het genereren van JSON in Ruby met de json edelsteen. Het biedt een API voor het ontleden van JSON uit tekst en het genereren van JSON-tekst uit willekeurige Ruby-objecten. Het is gemakkelijk de meest gebruikte JSON-bibliotheek in Ruby.

De JSON Gem installeren

Op Ruby 1.8.7 moet je een edelsteen installeren. In Ruby 1.9.2 is de json edelsteen is gebundeld met de kern Ruby-distributie. Dus als u 1.9.2 gebruikt, bent u waarschijnlijk helemaal klaar. Als je 1.8.7 gebruikt, moet je een edelsteen installeren.

Voordat u het JSON-juweel installeert, moet u zich eerst realiseren dat dit juweel in twee varianten is verdeeld. Eenvoudig dit juweeltje installeren met juweel installeren json installeert de C-uitbreidingsvariant. Dit vereist een C-compiler om te installeren en is mogelijk niet beschikbaar of geschikt voor alle systemen. Maar als je deze versie kunt installeren, zou je dat moeten doen.

Als u de versie van de C-extensie niet kunt installeren, zou u dat moeten doen gem install json_pure in plaats daarvan. Dit is hetzelfde juweeltje geïmplementeerd in pure Ruby. Het moet overal worden uitgevoerd waar Ruby-code wordt uitgevoerd, op alle platforms en op verschillende tolken. Het is echter aanzienlijk langzamer dan de C-uitbreidingsversie.

Eenmaal geïnstalleerd, zijn er een paar manieren om dit juweeltje te eisen. EEN vereisen 'json' (na een voorwaarde vereisen 'rubygems' indien nodig) vereist welke variant beschikbaar is en geeft de voorkeur aan de C-uitbreidingsvariant als beide zijn geïnstalleerd. EEN vereisen 'json / pure' vereist expliciet de pure variant, en a vereisen 'json / ext' heeft expliciet de C-variant nodig.

JSON ontleden

Laten we, voordat we beginnen, een paar eenvoudige JSON definiëren om te parseren. JSON wordt meestal gegenereerd door webapplicaties en kan behoorlijk ontmoedigend zijn, met diepe hiërarchieën die moeilijk te navigeren zijn. We beginnen met iets eenvoudigs. Het bovenste niveau van dit document is een hash, de eerste twee toetsen bevatten tekenreeksen en de laatste twee toetsen bevatten reeksen tekenreeksen.

Dus het ontleden is vrij eenvoudig. Ervan uitgaande dat deze JSON wordt opgeslagen in een bestand met de naam employees.json, je kunt dit zo in een Ruby-object ontleden.

En de output van dit programma. Merk op dat als u dit programma uitvoert op Ruby 1.8.7, de volgorde waarin de sleutels worden opgehaald uit de hash niet noodzakelijkerwijs dezelfde volgorde is waarin ze zijn ingevoegd. Uw uitvoer kan dus buiten gebruik lijken.

De empls object zelf is slechts een hash. Niets bijzonders. Het heeft 4 sleutels, net als het JSON-document. Twee van de toetsen zijn tekenreeksen en twee zijn reeksen reeksen. Geen verrassingen, de JSON werd trouw getranscribeerd in Ruby-objecten voor uw inzage.

En dat is ongeveer alles wat u moet weten over het parseren van JSON. Er zijn enkele problemen die aan de orde komen, maar die zullen in een later artikel worden behandeld. Voor vrijwel elk geval leest u eenvoudig een JSON-document uit een bestand of via HTTP en voert u het in JSON.parse.