프로그래밍/Unreal
[UE] FJsonObjectConverter 를 사용한 json string 변환
chance
2024. 2. 14. 19:47
언리얼에는 UStruct 를 간단히 문자열과 객체간에 변환할 수 있는 유틸리티를 제공하고 있다.
모듈추가
Build.cs 파일에 json 관련 모듈을 추가한다.
PrivateDependencyModuleNames.AddRange(
new string[]
{
.
.
"Json",
"JsonUtilities",
.
.
}
);
ustruct 선언
USTRUCT(Atomic, BlueprintType, Category="Sample")
struct FMyData
{
GENERATED_BODY()
UPROPERTY(BlueprintReadOnly, DisplayName="Name")
FName Name;
UPROPERTY(BlueprintReadOnly, DisplayName="Message")
FString Message;
}
USTRUCT(Atomic, BlueprintType, Category="Sample")
struct FMyMessages
{
GENERATED_BODY()
UPROPERTY(BlueprintReadOnly, DisplayName="Messages")
TArray<FMyData> Messages;
}
UStruct to JsonString
// 구조체 값 할당
FMyMessages Messages;
FMyData Data1, Data2;
Data1.Name = "chance";
Data1.Message = "hello";
Data2.Name = "chance";
Data2.Message = "world";
Messages.Add(Data2);
Messages.Add(Data1);
// 구조체를 json string 으로 변환
FString JsonString;
FJsonObjectConverter::UStructToJsonObjectString(Messages, JsonString);
JsonString to UStruct
FMessages Messages;
FJsonObjectConverter::JsonObjectStringToUStruct(JsonString, &Messages);