UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataTableJSON.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Dom/JsonValue.h"
8#include "Dom/JsonObject.h"
9
10class UDataTable;
11enum class EDataTableExportFlags : uint8;
13
14template <class CharType> struct TPrettyJsonPrintPolicy;
15
16// forward declare JSON writer
17template <class CharType>
19template <class CharType, class PrintPolicy>
20class TJsonWriter;
21
23{
26}
27
28#if WITH_EDITOR
29
33template<typename CharType = TCHAR>
35{
36public:
38
40
42
45
48
50 bool WriteRow(const UScriptStruct* InRowStruct, const void* InRowData, const FString* FieldToSkip = nullptr);
51
53 bool WriteStruct(const UScriptStruct* InStruct, const void* InStructData, const FString* FieldToSkip = nullptr);
54
55protected:
56 //~ Field iterator based methods BEGIN
57 bool WriteStructUsingFieldIterator(const UScriptStruct* InStruct, const void* InStructData, const FString* FieldToSkip = nullptr);
58 bool WriteStructEntry(const void* InRowData, const FProperty* InProperty, const void* InPropertyData);
59 bool WriteContainerEntry(const FProperty* InProperty, const void* InPropertyData, const FString* InIdentifier = nullptr);
60 //~ Field iterator based methods END
61
62 //~ PropertyVisitor based methods BEGIN
65 //~ PropertyVisitor based methods END
66
70};
71
76{
77public:
79//
81};
82
83#endif // WITH_EDITOR
84
86{
87public:
89
91
92 bool ReadTable();
93 bool AddRow(bool bRemoveDuplicate = false, FName* OutRowName = nullptr);
94
95private:
96 bool ReadRow(const TSharedRef<FJsonObject>& InParsedTableRowObject, const int32 InRowIdx, bool bRemoveDuplicate = false, FName* OutRowName = nullptr);
97
99
100 bool ReadStructEntry(const TSharedRef<FJsonValue>& InParsedPropertyValue, const FName InRowName, const FString& InColumnName, const void* InRowData, FProperty* InProperty, void* InPropertyData);
101
102 bool ReadContainerEntry(const TSharedRef<FJsonValue>& InParsedPropertyValue, const FName InRowName, const FString& InColumnName, const int32 InArrayEntryIndex, FProperty* InProperty, void* InPropertyData);
103
104 UDataTable* DataTable;
105 const FString& JSONData;
106 TArray<FString>& ImportProblems;
107};
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EDataTableExportFlags
Definition DataTableUtils.h:13
T TNotNull
Definition NotNull.h:307
EPropertyVisitorControlFlow
Definition PropertyVisitor.h:15
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition DataTableJSON.h:86
~FDataTableImporterJSON()
Definition DataTableJSON.cpp:647
bool AddRow(bool bRemoveDuplicate=false, FName *OutRowName=nullptr)
Definition DataTableJSON.cpp:698
bool ReadTable()
Definition DataTableJSON.cpp:651
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition Array.h:670
Definition JsonWriter.h:85
Definition SharedPointer.h:153
Definition DataTable.h:81
Definition Class.h:1720
Definition DataTableJSON.h:23
FString GetKeyFieldName(const UDataTable &InDataTable)
Definition DataTableJSON.cpp:80
Definition PrettyJsonPrintPolicy.h:16