class Amber::WebSockets::Decoders::JsonDecoder

Overview

JSON decoder for WebSocket messages.

This is the default decoder used by ClientSocket. It encodes and decodes messages as JSON strings, which is the standard format for Amber WebSocket communication.

Example:

decoder = Amber::WebSockets::Decoders::JsonDecoder.new
decoded = decoder.decode(%|{"event":"message","topic":"room:1"}|)
decoded["event"].as_s # => "message"

encoded = decoder.encode({"event" => "message", "topic" => "room:1"})
# => "{\"event\":\"message\",\"topic\":\"room:1\"}"

Defined in:

amber/websockets/decoders/json_decoder.cr

Instance Method Summary

Instance methods inherited from class Amber::WebSockets::Decoders::Decoder

content_type : String content_type, decode(raw : String) : JSON::Any decode, encode(payload : Hash) : String
encode(payload : JSON::Any) : String
encode

Instance Method Detail

def content_type : String #
Description copied from class Amber::WebSockets::Decoders::Decoder

Returns the MIME content type associated with this decoder.


[View source]
def decode(raw : String) : JSON::Any #
Description copied from class Amber::WebSockets::Decoders::Decoder

Decodes a raw message string into a structured JSON::Any value.

Returns a JSON::Any representing the decoded message. Implementations should raise DecoderError if the message cannot be decoded.


[View source]
def encode(payload : Hash) : String #
Description copied from class Amber::WebSockets::Decoders::Decoder

Encodes a Hash payload into a string suitable for sending over the socket.


[View source]
def encode(payload : JSON::Any) : String #
Description copied from class Amber::WebSockets::Decoders::Decoder

Encodes a JSON::Any payload into a string suitable for sending over the socket.


[View source]