一丶解析对象型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)
}