Parsen einer JSON-Zeichenkette in Ruby
JSON (JavaScript Object Notation) ist ein beliebtes Format für den Datenaustausch, das hauptsächlich zwischen Webanwendungen zum Senden und Empfangen von Daten verwendet wird. In diesem Tutorial sehen wir uns an, wie JSON-Strings analysiert werden.
Gängige Beispiele für JSON-Werte könnten sein:
- eine in eckige Klammern eingeschlossene Werteliste. Bsp.
["Orange", "Apple", [1, 2]]
- eine Liste von Schlüsseln/Paaren, eingeschlossen in geschweiften Klammern. B.
{ "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }
Diese JSON-Werte kommen manchmal in String-Form, zum Beispiel als Antwort von einer externen API, und es besteht immer die Notwendigkeit, sie in das umzuwandeln, was Ruby verarbeiten kann. Es gibt eine parse
-Methode des JSON
-Moduls, die uns das ermöglicht.
Beispielcodes:
require 'json'
json_string = '["Orange", "Apple", [1, 2]]'
another_json_string = '{ "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }'
puts JSON.parse(json_string)
puts JSON.parse(another_json_string)
Ausgabe:
["Orange", "Apple", [1, 2]]
{"name"=>"John", "sex"=>"male", "grades"=>[60, 70, 80, 90]}
Um das JSON-Modul in unserem Code verfügbar zu machen, müssen wir zuerst die Datei anfordern, und das tut die erste Zeile unseres Codes.
Wie im obigen Beispiel gezeigt, konvertiert JSON.parse
den json_string
in ein Ruby-Array und den another_json_string
in einen Ruby-Hash.
Wenn Sie einen JSON-Wert haben, der nicht in einer Zeichenkettenform vorliegt, können Sie to_json
aufrufen, um ihn zuerst in eine JSON-Zeichenfolge zu konvertieren, und dann JSON.parse
verwenden, um ihn je nach Fall in ein Array oder einen Hash zu konvertieren.
Beispielcodes:
require 'json'
json_one = ["Orange", "Apple", [1, 2]]
json_two = { "name": "John", "sex": "male", "grades": [60, 70, 80, 90] }
puts JSON.parse(json_one.to_json)
puts JSON.parse(json_two.to_json)
Ausgabe:
["Orange", "Apple", [1, 2]]
{"name"=>"John", "sex"=>"male", "grades"=>[60, 70, 80, 90]}