const mixinafJson::JsonConverters
afJson::JsonConverters
@
Js
(Service) - Converts Fantom objects to and from their JSON representation.
- defConvs
static Type:JsonConverter defConvs()
The default set of JSON <-> Fantom converters.
- fromJson
abstract Obj? fromJson(Str? json, Type fantomType)
Converts a JSON string to the given Fantom type.
- fromJsonObj
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
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
@
Operator
abstract JsonConverter get(Type type)Returns the
Converter
instance used to convert the given type.- make
static new make([Type:JsonConverter]? converters := null, [Str:Obj?]? options := null)
Returns a new
JsonConverters
instance.If
converters
isnull
thendefConvs
is used. Common options are:afJson.makeEntity : |Type type, Field:Obj? fieldVals->Obj?| { ... } afJson.strictMode : true
Override
makeEntity
to have IoC create entity instances. SetstrictMode
totrue
to Err if the JSON contains unmapped data.- normaliseDotNetKeyNames
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
abstract Str toJson(Obj? fantomObj, Obj? options := null)
Converts the given Fantom object to its JSON string representation.
options
is passed toJsonWriter
, so may just betrue
for pretty printing.- toJsonObj
abstract [Str:Obj?]? toJsonObj(Obj? fantomObj)
Converts the given Fantom object to its JSON object representation.
fantomType
is required in casefantomObj
is null.fantomObj
is nullable so converters can create empty / default objects.- toJsonVal
abstract Obj? toJsonVal(Obj? fantomObj, Type fantomType)
Converts the given Fantom object to its JSON representation.
fantomType
is required in casefantomObj
is null.fantomObj
is nullable so converters can create empty / default objects.- withOptions
abstract JsonConverters withOptions(Str:Obj? newOptions)
Returns a new
JsonConverters
whose options are overridden with the given ones.