虚幻引擎: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)
	 }
相关推荐
xailorliu2 小时前
SLIC_超像素算法
c++·opencv·目标检测·机器学习·计算机视觉
苏打豆2 小时前
CRISP源码阅读——基于ROS2力矩反馈控制器与速度加速度零空间
c++·线性代数·算法·矩阵·机器人
小小龙学IT3 小时前
snap7 开源西门子 S7 通信协议库深度解析
c++·开源
小溪学编程4 小时前
从 C++ 的规范变迁看语言发展
jvm·c++·面试
ShineWinsu5 小时前
对于Redis:string类型的解析
java·c++·redis·分布式·缓存·面试·string
YYYing.6 小时前
【设计模式系列 (七) 】桥接模式
c++·后端·设计模式·桥接模式
高山有多高7 小时前
【Linux笔记】Linux自定义Shell
linux·c++
悠仁さん7 小时前
【C++】vector 类
开发语言·c++
_upupup7 小时前
智能指针的原理及简单模拟实现(C++)
开发语言·c++
l1t7 小时前
DeepSeek总结的OpenZL压缩变换器
c++·算法