encoder topic

The encoder will generate formatted JSON Strings.

Encode a JsonObject with .stringify, and it will be formatted using standardJsonFormatting.

final object = JsonObject.elements([
  const JsonString(key: "foo", data: "hello"),
  const JsonBoolean(key: "isOk", data: true),
  const JsonArray<dynamic>(key: "random", data: [1,0,33]),
]);

// when:
final json = object.stringify;

// then:
expect(json, """
{
    "foo" : "hello",
    "isOk" : true,
    "random" : [
        1,
        0,
        33
    ]
}""");

Encode a JsonObject with .stringifyWithFormatting, and it will be formatted using custom formatting. Use standardJsonFormatting.copyWith to use the standardJsonFormatting as base and only alter what you require.

  // given:
final object = JsonObject.elements([
  const JsonString(key: "foo", data: "hello"),
  const JsonBoolean(key: "isOk", data: true),
  const JsonArray<dynamic>(key: "random", data: [1,0,33]),
]);

// when:
final json = object.stringifyWithFormatting(
    standardJsonFormatting.copyWith(
      indentationSize: JsonIndentationSize.doubleSpace,
      colonPadding: 20,
    )
);

// then:
expect(json, """
{
  "foo"                    :                    "hello",
  "isOk"                    :                    true,
  "random"                    :                    [
    1,
    0,
    33
  ]
}""");

Classes

JsonArray<T> ast decoder encoder
A JSON element containing an Array value.
JsonArrayOrNull<T> ast decoder encoder
A JSON element containing an Array value or null.
JsonBoolean ast decoder encoder
A JSON element containing a bool value.
JsonBooleanOrNull ast decoder encoder
A JSON element containing a bool value or null.
JsonDecode<T, R> decoder encoder
Decode a JsonNode to a non-standard dart type.
JsonEncode<T> decoder encoder
Encode a (non-standard) dart type to a JsonNode.
JsonFloatingNumber ast decoder encoder
A JSON element containing a double value.
JsonFloatingNumberOrNull ast decoder encoder
A JSON element containing a double value or null.
JsonFormattingOptions encoder
Options to configure JSON formatting.
JsonIntegerNumber ast decoder encoder
A JSON element containing an int value.
JsonIntegerNumberOrNull ast decoder encoder
A JSON element containing an int value or null.
JsonMissing ast decoder encoder
A JSON element containing a null value and key.
JsonNode<T> ast decoder encoder
A single JSON node representation consisting of a String key and T data.
JsonNull ast decoder encoder
A JSON element containing a null value.
JsonObject ast decoder encoder
JSON Object (Map) element.
JsonObjectOrNull ast decoder encoder
JSON Object (Map) element.
JsonString ast decoder encoder
A JSON element containing a String value.
JsonStringOrNull ast decoder encoder
A JSON element containing a String or null value.
JsonValue decoder encoder
Set value of field with value of JsonNode with name.

Extensions

JsonFormatter on String encoder
Utilities to format a JSON String,
JsonFormattingOptionsBuilder on JsonFormattingOptions encoder
Helper to customize JsonFormattingOptions.

Constants

squint → const _Squint decoder encoder
All classes annotated with @squint will be processed by the squint library.
standardJsonFormatting → const JsonFormattingOptions encoder
Default JSON formatting options.

Functions

maybeAddQuotes(dynamic value) → dynamic encoder
Return a quoted String value for JSON if the current value is a String.

Enums

JsonIndentationSize encoder
Length of indentation per level.