You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485 [CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Serialization/JsonSerializer.h"
|
|
|
|
namespace JsonExtensions
|
|
{
|
|
/** Get the field named FieldName as an array of strings. Returns false if it doesn't exist or any member cannot be converted. */
|
|
inline bool TryGetStringArrayFieldWithDeprecatedFallback(const FJsonObject& JsonObject, const FString& FieldName, const FString& DeprecatedFieldName, TArray<FString>& OutArray)
|
|
{
|
|
if (JsonObject.TryGetStringArrayField(FieldName, /*out*/ OutArray))
|
|
{
|
|
return true;
|
|
}
|
|
else if (JsonObject.TryGetStringArrayField(DeprecatedFieldName, /*out*/ OutArray))
|
|
{
|
|
//@TODO: Warn about deprecated field fallback?
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/** Get the field named FieldName as an array of enums. Returns false if it doesn't exist or any member is not a string. */
|
|
template<typename TEnum>
|
|
inline bool TryGetEnumArrayFieldWithDeprecatedFallback(const FJsonObject& JsonObject, const FString& FieldName, const FString& DeprecatedFieldName, TArray<TEnum>& OutArray)
|
|
{
|
|
if (JsonObject.TryGetEnumArrayField<TEnum>(FieldName, /*out*/ OutArray))
|
|
{
|
|
return true;
|
|
}
|
|
else if (JsonObject.TryGetEnumArrayField<TEnum>(DeprecatedFieldName, /*out*/ OutArray))
|
|
{
|
|
//@TODO: Warn about deprecated field fallback?
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
}
|