const mixinafJson::JsonConverters

afJson::JsonConverters

@Js

(Service) - Converts Fantom objects to and from their JSON representation.

defConvs

Source

const static Type:JsonConverter defConvs()

The default set of JSON <-> Fantom converters.

fromJson

Source

abstract Obj? fromJson(Str? json, Type fantomType)

Converts a JSON string to the given Fantom type.

fromJsonObj

Source

abstract Obj? fromJsonObj([Str:Obj?]? jsonObj, Type fantomType)

Converts a JSON object to the given Fantom type.

jsonObj is nullable so converters can choose whether or not to create empty lists and maps.

fromJsonVal

Source

abstract Obj? fromJsonVal(Obj? jsonVal, Type fantomType)

Converts a JSON value to the given Fantom type.

jsonVal is nullable so converters can choose whether or not to create empty lists and maps.

get

Source

@Operator
abstract JsonConverter get(Type type)

Returns the Converter instance used to convert the given type.

make

Source

static new make([Type:JsonConverter]? converters := null, [Str:Obj?]? options := null)

Returns a new JsonConverters instance.

If converters is null then defConvs is used. Common options are:

afJson.makeEntity : |Type type, Field:Obj? fieldVals->Obj?| { ... }
afJson.strictMode : true

Override makeEntity to have IoC create entity instances. Set strictMode to true to Err if the JSON contains unmapped data.

normaliseDotNetKeyNames

Source

const static |Obj?->Obj? normaliseDotNetKeyNames()

Returns a fn that normalises .NET JSON key names into standard Fantom camelCase names.

Use as a hook option:

converters := JsonConverters(null, [
    "afJson.fromJsonHook" : JsonConverters.normaliseDotNetKeyNames
])
toJson

Source

abstract Str toJson(Obj? fantomObj, Obj? options := null)

Converts the given Fantom object to its JSON string representation.

options is passed to JsonWriter, so may just be true for pretty printing.

toJsonObj

Source

abstract [Str:Obj?]? toJsonObj(Obj? fantomObj)

Converts the given Fantom object to its JSON object representation.

fantomType is required in case fantomObj is null. fantomObj is nullable so converters can create empty / default objects.

toJsonVal

Source

abstract Obj? toJsonVal(Obj? fantomObj, Type fantomType)

Converts the given Fantom object to its JSON representation.

fantomType is required in case fantomObj is null. fantomObj is nullable so converters can create empty / default objects.

withOptions

Source

abstract JsonConverters withOptions(Str:Obj? newOptions)

Returns a new JsonConverters whose options are overridden with the given ones.