{ "code": -1, "data": null, "msg": "Index: 0, Size: 0" }使用UE5 C++代码解析这个JSON
时间: 2024-02-10 20:09:29 浏览: 31
要使用UE5 C++代码解析JSON,可以使用UE5自带的JsonUtilities库。下面是一个示例代码,演示如何解析给定的JSON字符串:
```cpp
#include "JsonUtilities.h"
// 定义一个结构体来存储解析后的数据
struct MyData
{
int32 code;
FString msg;
};
// 解析JSON字符串的函数
bool ParseJsonString(const FString& JsonString, MyData& OutData)
{
TSharedPtr<FJsonObject> JsonObject;
TSharedRef<TJsonReader<>> JsonReader = TJsonReaderFactory<>::Create(JsonString);
// 解析JSON字符串
if (!FJsonSerializer::Deserialize(JsonReader, JsonObject))
{
return false;
}
// 从JsonObject中获取对应的值
JsonObject->TryGetNumberField("code", OutData.code);
JsonObject->TryGetStringField("msg", OutData.msg);
return true;
}
// 使用示例
void ExampleUsage()
{
FString JsonString = R"({
"code": -1,
"data": null,
"msg": "Index: 0, Size: 0"
})";
MyData ParsedData;
if (ParseJsonString(JsonString, ParsedData))
{
// 解析成功,可以使用ParsedData中的数据
UE_LOG(LogTemp, Warning, TEXT("Parsed code: %d"), ParsedData.code);
UE_LOG(LogTemp, Warning, TEXT("Parsed msg: %s"), *ParsedData.msg);
}
else
{
// 解析失败
UE_LOG(LogTemp, Error, TEXT("Failed to parse JSON"));
}
}
```
这段代码定义了一个名为`MyData`的结构体,用于存储解析后的数据。`ParseJsonString`函数接受一个JSON字符串和一个`MyData`结构体的引用作为参数,将解析后的数据存储到`OutData`中。使用示例代码展示了如何调用`ParseJsonString`函数并使用解析后的数据。