gpt4 book ai didi

c++ - 如何将 JsonObject 转换为 JSON 字符串?

转载 作者:行者123 更新时间:2023-11-30 03:26:37 27 4
gpt4 key购买 nike

我正在尝试将结构及其包含的数据转换为合法的 JSON 字符串。我在 C++ 的虚幻引擎中工作。

我正在尝试转换的结构:

USTRUCT()
struct DATALOGGING_API FGURaaSDataStruct
{
GENERATED_USTRUCT_BODY()
public:
UPROPERTY()
FString id_session = "test";
UPROPERTY()
TArray<FData> data;
};

在前一个结构中使用的结构:

USTRUCT()
struct DATALOGGING_API FData
{
GENERATED_USTRUCT_BODY()
public:
UPROPERTY()
FString data;
UPROPERTY()
FString tag1;
UPROPERTY()
FString tag2;
UPROPERTY()
FString tag3;
UPROPERTY()
FString tag4;
UPROPERTY()
TArray<FString> additional_tags;
UPROPERTY()
FString time;
};

当前方法:(JsonObject - UE4 特定代码)

FGURaaSDataStruct tObj = FGURaaSDataStruct();
TSharedPtr<FJsonObject> jsonObject = FJsonObjectConverter::UStructToJsonObject<FGURaaSDataStruct>(tObj);

此处生成的 JsonObject 包含创建 Json String 所需的所有信息,理想情况下我希望有一种简单的方法将此 JsonObject 转换为 JSON String。

最佳答案

这会将 Json 序列化为 OutputString,然后您可以自由地做任何您想做的事情。

有关详细信息,请参阅 Using Json in Unreal Engine 4 .

void  FStructToJsonString(FStructXXX _myStruct) {

TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject);

JsonObject->SetStringField("param1", _myStruct.param1);
JsonObject->SetStringField("param2", _myStruct.param2);

FString OutputString;
TSharedRef< TJsonWriter<> > Writer = TJsonWriterFactory<>::Create(&OutputString);
FJsonSerializer::Serialize(JsonObject.ToSharedRef(), Writer);

UE_LOG(LogTemp, Warning, TEXT("resulting jsonString -> %s"), *OutputString);
}

关于c++ - 如何将 JsonObject 转换为 JSON 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48189024/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com