Het is gemakkelijk om te beginnen met parseren en genereren JSON in Ruby met de json edelsteen. Het biedt een API voor het ontleden van JSON uit tekst en voor 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. Echter, in Ruby 1.9.2, 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 de JSON-edelsteen installeert, moet u zich eerst realiseren dat deze edelsteen in twee varianten wordt verdeeld. Simpel dit juweeltje installeren met gem installeer json installeert de C-extensie variant. Dit vereist een C-compiler te installeren en is mogelijk niet beschikbaar of geschikt voor alle systemen. Maar als u deze versie kunt installeren, zou u dat moeten doen.
Als u de C-extensieversie niet kunt installeren, moet u dat doen
gem installeer json_pure in plaats daarvan. Dit is hetzelfde juweel dat is geïmplementeerd in pure Ruby. Het zou overal moeten draaien waar Ruby-code draait, op alle platforms en op verschillende tolken. Het is echter aanzienlijk langzamer dan de C-extensieversie.Eenmaal geïnstalleerd, zijn er een paar manieren om dit juweeltje te gebruiken. EEN vereist 'json' (na een vereiste 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 een vereist 'json / ext' vereist expliciet de C-extensie variant.
JSON ontleden
Laten we, voordat we beginnen, een eenvoudige JSON definiëren om te ontleden. 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 hoogste niveau van dit document is een hash, de eerste twee sleutels bevatten strings en de laatste twee sleutels bevatten arrays van strings.
Dit ontleden is dus vrij eenvoudig. Ervan uitgaande dat deze JSON is opgeslagen in een bestand met de naam werknemers. json, je kunt dit zo in een Ruby-object parseren.
En de output van dit programma. Merk op dat als u dit programma op Ruby 1.8.7 draait, de volgorde waarin de sleutels uit de hash worden opgehaald niet noodzakelijk dezelfde volgorde is waarin ze zijn ingevoegd. Uw uitvoer kan dus in de verkeerde volgorde verschijnen.
De empls object zelf is gewoon een hash. Niets bijzonders aan. Het heeft 4 sleutels, net zoals het JSON-document had. Twee van de sleutels zijn strings en twee zijn arrays van strings. Geen verrassingen, de JSON is getrouw 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 naar voren 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.