如何将JsonObject转换为JSON字符串? [英] How can I convert a JsonObject to a JSON String?

查看:358
本文介绍了如何将JsonObject转换为JSON字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to convert a struct and the data it contains into a legitimate JSON String. I work in Unreal Engine in C++.

我要转换的结构:

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

在先前的结构中使用的结构:

Struct that is used in the previous struct:

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特定代码)

Current aproach: (JsonObject - UE4 specific code)

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

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

The JsonObject generated here contains all the information necessary to create a Json String, ideally I would like to have a simple way to convert this JsonObject into an JSON String.

推荐答案

这会将Json序列化为OutputString,然后您就可以随意执行任何操作.

This will serialize the Json to OutputString which you are then free to do whatever you want.

有关更多信息,请参见在虚幻引擎4中使用Json .

For more information, see 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);
}

这篇关于如何将JsonObject转换为JSON字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆