FJsonObjectConverter::JsonObjectToUStruct使用例子
时间: 2023-08-08 13:06:40 浏览: 215
JSONObject使用示例
下面是一个使用`FJsonObjectConverter::JsonObjectToUStruct`的简单例子:
假设我们有以下结构体:
```c++
USTRUCT()
struct FExampleStruct
{
GENERATED_BODY()
UPROPERTY()
FString Name;
UPROPERTY()
int32 Age;
};
```
我们要将一个Json对象转换为该结构体的实例,可以使用以下代码:
```c++
void ExampleFunction()
{
FString JsonString = "{\"Name\":\"John\",\"Age\":30}";
TSharedPtr<FJsonObject> JsonObject = MakeShareable(new FJsonObject());
TSharedRef<TJsonReader<>> JsonReader = TJsonReaderFactory<>::Create(JsonString);
// 解析Json字符串
if (FJsonSerializer::Deserialize(JsonReader, JsonObject))
{
// 将Json对象转换为FExampleStruct结构体实例
FExampleStruct ExampleStruct;
FJsonObjectConverter::JsonObjectToUStruct(JsonObject.ToSharedRef(), FExampleStruct::StaticStruct(), &ExampleStruct, 0, 0);
// 输出结果
UE_LOG(LogTemp, Warning, TEXT("Name: %s, Age: %d"), *ExampleStruct.Name, ExampleStruct.Age);
}
else
{
UE_LOG(LogTemp, Error, TEXT("Failed to parse Json string!"));
}
}
```
在上述代码中,我们首先将一个Json字符串解析为`TSharedPtr<FJsonObject>`对象,然后使用`FJsonObjectConverter::JsonObjectToUStruct`函数将该Json对象转换为`FExampleStruct`结构体的实例,并输出结果。
阅读全文