虚幻引擎:UEC++中如何解析JSON字符串

一丶解析对象型JSON

cpp 复制代码
//解析对象形JSON
	FString JsonString = TEXT("{\"name\":\"二狗\"}");
	//通过解析工厂创建解析阅读器
	TSharedRef<TJsonReader<>> Json =TJsonReaderFactory<>::Create(JsonString);
	//创建用于接收的UE的Json对象
	TSharedPtr<FJsonObject> JsonObject;
	//通过序列化工具进行反序列化,序列化一般指,将内存数据结构转换为其他数据结构
	 if(FJsonSerializer::Deserialize(Json,JsonObject))
	 {
	 	FString name = JsonObject->GetStringField(TEXT("name"));
	    UE_LOG(LogTemp, Log, TEXT("ok%s"),*name)
	 }

二丶解析数组型JSON

cpp 复制代码
//解析数组型JSON
	FString JsonString = TEXT("[\"张三\",12,true,{\"name\":\"二狗\"}]");
	//通过解析工厂创建解析阅读器
	TSharedRef<TJsonReader<>> Json =TJsonReaderFactory<>::Create(JsonString);
	//创建用于接收的UE的Json数组
	TArray<TSharedPtr<FJsonValue>>JsonObject;
	//通过序列化工具进行反序列化,序列化一般指,将内存数据结构转换为其他数据结构
	 if(FJsonSerializer::Deserialize(Json,JsonObject))
	 {
	    UE_LOG(LogTemp, Log, TEXT("ok%s"),*JsonObject[0]->AsString())
	    UE_LOG(LogTemp, Log, TEXT("ok%f"),JsonObject[1]->AsNumber())
	    UE_LOG(LogTemp, Log, TEXT("ok%d"),JsonObject[2]->AsBool())
	 	FString name = JsonObject[3]->AsObject()->GetStringField("name");
	    UE_LOG(LogTemp, Log, TEXT("ok%s"),*name)
	 }
相关推荐
sulikey1 小时前
C++ 四十年:一段跨越时代的语言旅程
c++·c++40周年
-森屿安年-2 小时前
LeetCode 283. 移动零
开发语言·c++·算法·leetcode
散峰而望2 小时前
C++数组(一)(算法竞赛)
c语言·开发语言·c++·算法·github
FuckPatience5 小时前
C++ 常用类型写法和全称
开发语言·c++
__BMGT()6 小时前
参考文章资源记录
开发语言·c++·qt
ouliten6 小时前
C++笔记:std::string_view
开发语言·c++·笔记
玫瑰花店6 小时前
万字C++中锁机制和内存序详解
开发语言·c++·算法
D_evil__6 小时前
[C++高频精进] 文件IO:文件流
c++
西幻凌云6 小时前
认识STL序列式容器——List
开发语言·c++·stl·list·序列式容器
Elias不吃糖7 小时前
LeetCode每日一练(209, 167)
数据结构·c++·算法·leetcode