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. - Returns - nullif- jsonis- null.
- fromJsonArray
- abstract Obj?[]? fromJsonArray(Obj?[]? jsonArray, Type? fantomValType := null)- Converts a list of JSON values to the given Fantom (non-list) type. - fromJsonList(list, MyEntity#) - Convenience for calling - fromJsonVal()with a cast.
- fromJsonObj
- abstract Obj? fromJsonObj([Str:Obj?]? jsonObj, Type? fantomType := null)- Converts a JSON object to the given Fantom type. - Convenience for calling - fromJsonVal()with a cast.- If - fantomTypeis- nullthen the obj is inspected for a- _typeproperty.
- fromJsonVal
- abstract Obj? fromJsonVal(Obj? jsonVal, Type? fantomType := null)- Converts a JSON value to the given Fantom type. - If - fantomTypeis- nullthen the obj is inspected for a- _typeproperty, else a reasonable guess is made (and the option- docToTypeFnis then called as a last resort.)- jsonValis nullable so converters can choose whether or not to create empty lists and maps.
- get
- @Operator
 abstract JsonConverter get(Type type)- Returns the - Converterinstance used to convert the given type.
- make
- static new make([Type:JsonConverter]? converters := null, [Str:Obj?]? options := null)- Returns a new - JsonConvertersinstance.- If - convertersis- nullthen- defConvsis used. Some defaults are:- makeEntityFn : |Type type, Field:Obj? fieldVals->Obj?| { BeanBuilder.build(type, vals) } makeJsonObjFn : |-> Str:Obj?| { Str:Obj?[:] { ordered = true } } fromJsonHookFn : |Obj? obj, JsonConverterCtx->Obj?| { obj } toJsonHookFn : |Obj? obj, JsonConverterCtx->Obj?| { obj } dateFormat : "YYYY-MM-DD" dateTimeFormat : "YYYY-MM-DD'T'hh:mm:ss.FFFz" strictMode : false propertyCache : JsonPropertyCache() pickleMode : false doNotWriteNulls : false encodeDecodeUris : true - set to false to use Uri.toStr / Str.toUri- Override - makeEntityFnto have IoC create entity instances.- Hook fns are called before conversion takes place. - Date formats are used to serialise Date and Time objects. - Set - strictModeto- trueto Err if the JSON contains unmapped data.- Pickle Mode is where all non - @Transientfields are converted, regardless of any- @JsonPropertyfacets. Data from- @JsonPropertyfacets, however, is still honoured if defined.
- normaliseKeyNamesFn
- static |Obj?->Obj? normaliseKeyNamesFn()- Returns a fn that normalises - .NETand- snake_casekey names into standard Fantom camelCase names.- .NET examples ------------- UniqueID --> uniqueId SWVersion --> swVersion MegaVERIndex --> megaVerIndex UtilITEMS.Rec --> utilItems.rec Snake_case examples ------------------- unique_id --> uniqueId sw_Version --> swVersion mega_VER_Index --> megaVerIndex - Use as a hook option: - converters := JsonConverters(null, [ "fromJsonHook" : JsonConverters.normaliseKeyNamesFn ])
- toJson
- abstract Str toJson(Obj? fantomObj, Obj? options := null)- Converts the given Fantom object to its JSON string representation. - optionsis passed to- JsonWriter, so may just be- truefor pretty printing.
- toJsonArray
- abstract Obj?[]? toJsonArray(Obj?[]? fantomList)- Deeply converts the given Fantom List to its JSON representation. - Convenience for calling - toJsonVal()with a cast.
- toJsonObj
- abstract [Str:Obj?]? toJsonObj(Obj? fantomObj)- Converts the given Fantom object to its JSON object representation. - Convenience for calling - toJsonVal()with a cast.
- toJsonVal
- abstract Obj? toJsonVal(Obj? fantomObj, Type? fantomType := null)- Converts the given Fantom object to its JSON representation. - fantomObjis nullable so converters can create empty / default objects.- fantomTypein case- fantomObjis null, but defaults to- fantomObj?.typeof.
- withOptions
- abstract JsonConverters withOptions(Str:Obj? newOptions)- Returns a new - JsonConverterswhose options are overridden with the given ones.