class JSON::Coder
JSON::Coder speichert eine Parser- und Generator-Konfiguration.
module MyApp JSONC_CODER = JSON::Coder.new( allow_trailing_comma: true ) end MyApp::JSONC_CODER.load(document)
Öffentliche Klassenmethoden
Source
# File ext/json/lib/json/common.rb, line 1058 def initialize(options = nil, &as_json) if options.nil? options = { strict: true } else options = options.dup options[:strict] = true end options[:as_json] = as_json if as_json @state = State.new(options).freeze @parser_config = Ext::Parser::Config.new(ParserOptions.prepare(options)).freeze end
Das Argument options, falls vorhanden, enthält einen Hash von Optionen sowohl für das Parsen als auch für die Generierung. Siehe Parsing Options und Generating Options.
Für die Generierung ist die Option strict: true immer gesetzt. Wenn ein Ruby-Objekt ohne natives JSON-Gegenstück angetroffen wird, wird der der Initialisierungsmethode übergebene Block aufgerufen, und dieser muss ein Ruby-Objekt zurückgeben, das ein natives JSON-Gegenstück hat.
module MyApp API_JSON_CODER = JSON::Coder.new do |object| case object when Time object.iso8601(3) else object # Unknown type, will raise end end end puts MyApp::API_JSON_CODER.dump(Time.now.utc) # => "2025-01-21T08:41:44.286Z"
Öffentliche Instanzmethoden
Source
# File ext/json/lib/json/common.rb, line 1076 def dump(object, io = nil) @state.generate(object, io) end
Serialisiert das gegebene Objekt in ein JSON-Dokument.
Auch aliased als: generate
Source
# File ext/json/lib/json/common.rb, line 1085 def load(source) @parser_config.parse(source) end
Parst das gegebene JSON-Dokument und gibt ein äquivalentes Ruby-Objekt zurück.
Auch aliased als: parse
Source
# File ext/json/lib/json/common.rb, line 1094 def load_file(path) load(File.read(path, encoding: Encoding::UTF_8)) end
Parst das gegebene JSON-Dokument und gibt ein äquivalentes Ruby-Objekt zurück.