UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
JsonPrintPolicy.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreMinimal.h"
7
13template <class InCharType>
15{
17
24 static inline void WriteChar( FArchive* Stream, CharType Char )
25 {
26 Stream->Serialize(&Char, sizeof(CharType));
27 }
28
36 {
37 auto Conv = StringCast<CharType>(String.GetData(), String.Len());
38 Stream->Serialize((void*)Conv.Get(), Conv.Length() * sizeof(CharType));
39 }
40
48 {
49 auto Conv = StringCast<CharType>(String.GetData(), String.Len());
50 Stream->Serialize((void*)Conv.Get(), Conv.Length() * sizeof(CharType));
51 }
52
59 static inline void WriteFloat( FArchive* Stream, float Value )
60 {
61 WriteString(Stream, FString::Printf(TEXT("%g"), Value));
62 }
63
70 static inline void WriteDouble( FArchive* Stream, double Value )
71 {
72 // Specify 17 significant digits, the most that can ever be useful from a double
73 // In particular, this ensures large integers are written correctly
74 WriteString(Stream, FString::Printf(TEXT("%.17g"), Value));
75 }
76};
77
78
79#if !PLATFORM_TCHAR_IS_CHAR16
80
84template <>
86{
87 // Note: This is a no-op on platforms that are using a 16-bit TCHAR
88 FTCHARToUTF16 UTF16String(String.GetData(), String.Len());
89
90 Stream->Serialize((void*)UTF16String.Get(), UTF16String.Length() * sizeof(UTF16CHAR));
91}
92
93#endif
94
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::CHAR16 UTF16CHAR
A 16-bit character containing a UTF16 (Unicode, 16-bit, variable-width) code unit.
Definition Platform.h:1141
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ Char
Character type.
Definition Archive.h:1208
Definition StringConv.h:832
Definition JsonPrintPolicy.h:15
static void WriteChar(FArchive *Stream, CharType Char)
Definition JsonPrintPolicy.h:24
InCharType CharType
Definition JsonPrintPolicy.h:16
static void WriteString(FArchive *Stream, FUtf8StringView String)
Definition JsonPrintPolicy.h:47
static void WriteFloat(FArchive *Stream, float Value)
Definition JsonPrintPolicy.h:59
static void WriteDouble(FArchive *Stream, double Value)
Definition JsonPrintPolicy.h:70
static void WriteString(FArchive *Stream, FStringView String)
Definition JsonPrintPolicy.h:35