5#include "CoreMinimal.h"
6#include "Detail/JsonObjectDeserialization.h"
7#include "Detail/JsonObjectSerialization.h"
8#include "NamingConvention.h"
9#include "UObject/ReflectedTypeAccessors.h"
26 const UStruct* StructDefinition,
28 ENamingConvention NamingConvention = ENamingConvention::SnakeCase);
38TSharedRef<FJsonObject>
UStructToJsonObject(
const T& Struct, ENamingConvention NamingConvention = ENamingConvention::SnakeCase)
44FString STREAMJSON_API JsonObjectToString(
const TSharedRef<FJsonObject>&
JsonObject);
50typename TEnableIf<TIsClass<T>::Value, FString>
::Type Serialize(
const T& Struct,
const ENamingConvention NamingConvention = ENamingConvention::SnakeCase)
52 const TSharedRef<FJsonObject>
JsonObject = JsonObject::UStructToJsonObject<T>(Struct, NamingConvention);
54 return JsonObject::JsonObjectToString(
JsonObject);
58typename TEnableIf<TIsEnumClass<T>::Value, FString>
::Type Serialize(
const T& Enum,
const ENamingConvention NamingConvention = ENamingConvention::SnakeCase)
60 return JsonObjectSerialization::UEnumToString(StaticEnum<T>(),
static_cast<int64
>(Enum), NamingConvention);
64T Deserialize(
const FString& Json)
67 JsonObjectDeserialization::JsonObjectStringToUStruct<T>(Json, &OutData);
@ Type
Type of the message.
Conversion to and from dynamic JSON objects.
Definition: StreamJson.h:16
STREAMJSON_API TSharedRef< FJsonObject > UStructToJsonObject(const UStruct *StructDefinition, const void *Struct, ENamingConvention NamingConvention=ENamingConvention::SnakeCase)
Converts from a UStruct to a Json Object.
Definition: StreamJson.cpp:8