欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 【UE5 C++课程系列笔记】32——读Json文件并解析

【UE5 C++课程系列笔记】32——读Json文件并解析

2025/4/7 9:44:45 来源:https://blog.csdn.net/ChaoChao66666/article/details/146976593  浏览:    关键词:【UE5 C++课程系列笔记】32——读Json文件并解析

前言 

在上一篇(【UE5 C++课程系列笔记】31——创建Json并保存为文件)中我们已经将Json存储到Json文件中,本篇会通过读取该Json文件来解析Json。

步骤

1. 定义一个函数用于读取Json,这里函数命名为“ReadJson”

函数实现如下,首先加载Json文件从而获得Json字符串

通过Json字符串构建Json对象

解析Json对象中的数字、字符串、Json对象和数组类型

完整代码:

void ASampleJson::ReadJson()
{//从文件中获取Json字符串FString JsonFilePath = FPaths::ProjectSavedDir() / TEXT("GoodJson.json");FString JsonString = TEXT("");FFileHelper::LoadFileToString(JsonString, *JsonFilePath);//通过Json字符串构建Json对象TSharedPtr<FJsonObject> JsonObject;TSharedRef<TJsonReader<TCHAR>> JsonReader = TJsonReaderFactory<TCHAR>::Create(JsonString);//解析Jsonbool IsDeserialize = FJsonSerializer::Deserialize(JsonReader, JsonObject);  //判断能否反序列化if (IsDeserialize) {//解析数字int32 CodeNum = JsonObject->GetNumberField(TEXT("Code"));//解析字符串FString Message = JsonObject->GetStringField(TEXT("Message"));//解析JsonObjectTSharedPtr<FJsonObject> Server = JsonObject->GetObjectField(TEXT("Server"));FString ServerName = Server->GetStringField(TEXT("ServerName"));FString ServerVersion = Server->GetStringField(TEXT("ServerVersion"));//解析数组TArray<TSharedPtr<FJsonValue>> MyArray = JsonObject->GetArrayField(TEXT("MyArray"));for (auto& Ele : MyArray){int32 Id = Ele->AsNumber();}//解析数组嵌套JsonTArray<TSharedPtr<FJsonValue>> Workers = JsonObject->GetArrayField(TEXT("Workers"));for (auto& Ele : Workers){TSharedPtr<FJsonObject> Worker = Ele->AsObject();int32 ID = Worker->GetIntegerField(TEXT("ID"));FString Name = Worker->GetStringField(TEXT("Name"));int32 Age = Worker->GetIntegerField(TEXT("Age"));}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词