Open 3D Engine AzCore API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::Data::AssetJsonSerializer Class Reference

JSON serializer for Asset<T>. More...

#include <AssetJsonSerializer.h>

Inherits AZ::BaseJsonSerializer.

Public Member Functions

 AZ_RTTI (AssetJsonSerializer, "{9674F4F5-7989-44D7-9CAC-DBD494A0A922}", BaseJsonSerializer)
 
JsonSerializationResult::Result Load (void *outputValue, const Uuid &outputValueTypeId, const rapidjson::Value &inputValue, JsonDeserializerContext &context) override
 
JsonSerializationResult::Result Store (rapidjson::Value &outputValue, const void *inputValue, const void *defaultValue, const Uuid &valueTypeId, JsonSerializerContext &context) override
 
- Public Member Functions inherited from AZ::BaseJsonSerializer
 AZ_RTTI (BaseJsonSerializer, "{7291FFDC-D339-40B5-BB26-EA067A327B21}")
 
virtual JsonSerializationResult::Result Load (void *outputValue, const Uuid &outputValueTypeId, const rapidjson::Value &inputValue, JsonDeserializerContext &context)
 
virtual JsonSerializationResult::Result Store (rapidjson::Value &outputValue, const void *inputValue, const void *defaultValue, const Uuid &valueTypeId, JsonSerializerContext &context)
 
virtual OperationFlags GetOperationsFlags () const
 Returns the operation flags which tells the Json Serialization how this custom json serializer can be used.
 

Public Attributes

 AZ_CLASS_ALLOCATOR_DECL
 

Additional Inherited Members

- Public Types inherited from AZ::BaseJsonSerializer
enum class  ContinuationFlags {
  None = 0 , ResolvePointer = 1 << 0 , ReplaceDefault = 1 << 1 , LoadAsNewInstance = 1 << 2 ,
  IgnoreTypeSerializer = 1 << 3
}
 
enum class  OperationFlags { None = 0 , ManualDefault = 1 << 0 , InitializeNewInstance = 1 << 1 }
 
- Protected Member Functions inherited from AZ::BaseJsonSerializer
JsonSerializationResult::ResultCode ContinueLoading (void *object, const Uuid &typeId, const rapidjson::Value &value, JsonDeserializerContext &context, ContinuationFlags flags=ContinuationFlags::None)
 
JsonSerializationResult::ResultCode ContinueStoring (rapidjson::Value &output, const void *object, const void *defaultObject, const Uuid &typeId, JsonSerializerContext &context, ContinuationFlags flags=ContinuationFlags::None)
 
JsonSerializationResult::ResultCode LoadTypeId (Uuid &typeId, const rapidjson::Value &input, JsonDeserializerContext &context, const Uuid *baseTypeId=nullptr, bool *isExplicit=nullptr)
 
JsonSerializationResult::ResultCode StoreTypeId (rapidjson::Value &output, const Uuid &typeId, JsonSerializerContext &context)
 
JsonSerializationResult::ResultCode ContinueLoadingFromJsonObjectField (void *object, const Uuid &typeId, const rapidjson::Value &value, rapidjson::Value::StringRefType memberName, JsonDeserializerContext &context, ContinuationFlags flags=ContinuationFlags::None)
 Helper function similar to ContinueLoading, but loads the data as a member of 'value' rather than 'value' itself, if it exists.
 
JsonSerializationResult::ResultCode ContinueStoringToJsonObjectField (rapidjson::Value &output, rapidjson::Value::StringRefType newMemberName, const void *object, const void *defaultObject, const Uuid &typeId, JsonSerializerContext &context, ContinuationFlags flags=ContinuationFlags::None)
 Helper function similar to ContinueStoring, but stores the data as a member of 'output' rather than overwriting 'output'.
 
bool IsExplicitDefault (const rapidjson::Value &value)
 
rapidjson::Value GetExplicitDefault ()
 

Detailed Description

JSON serializer for Asset<T>.

Member Function Documentation

◆ Load()

JsonSerializationResult::Result AZ::Data::AssetJsonSerializer::Load ( void *  outputValue,
const Uuid outputValueTypeId,
const rapidjson::Value &  inputValue,
JsonDeserializerContext context 
)
overridevirtual

Note that the information for the Asset<T> will be loaded, but the asset data won't be loaded. After deserialization has completed it's up to the caller to queue the Asset<T> for loading with the AssetManager.

Reimplemented from AZ::BaseJsonSerializer.

◆ Store()

JsonSerializationResult::Result AZ::Data::AssetJsonSerializer::Store ( rapidjson::Value &  outputValue,
const void *  inputValue,
const void *  defaultValue,
const Uuid valueTypeId,
JsonSerializerContext context 
)
overridevirtual

Write the input value to a rapidjson value if the default value is not null and doesn't match the input value, otherwise an error is returned and sets the rapidjson value to a null value.

Note
The default implementation is to store the object ignoring custom serializers.

Reimplemented from AZ::BaseJsonSerializer.


The documentation for this class was generated from the following file: