UE_读写json

时间:2025-03-28 17:19:50
//读item FItem ProjectJson::ReadItem(const FString _path) { //读取json FString jsonValue; bool flag = FFileHelper::LoadFileToString(jsonValue, *_path); //将json转换为结构体 FItem result; TSharedRef<TJsonReader<TCHAR>> JsonReader = TJsonReaderFactory<TCHAR>::Create(jsonValue); TSharedPtr<FJsonObject> JsonObject; bool BFlag = FJsonSerializer::Deserialize(JsonReader, JsonObject); if (BFlag) { if (flag) { = JsonObject->GetStringField("Time"); TArray<TSharedPtr<FJsonValue>> data = JsonObject->GetArrayField("Data"); for (int i = 0; i < (); i++) { FChildItem item; item.key1 = data[i]->AsObject()->GetStringField("key1"); item.key2 = data[i]->AsObject()->GetStringField("key2"); (item); } } } return result; } void ProjectJson::WriteItem(FItem data,FString _path) { //将FItem转换为Json字符串 FString JsonStr; TSharedRef<TJsonWriter<TCHAR, TCondensedJsonPrintPolicy<TCHAR>>> JsonWriter = TJsonWriterFactory<TCHAR, TCondensedJsonPrintPolicy<TCHAR>>::Create(&JsonStr); JsonWriter->WriteObjectStart(); JsonWriter->WriteValue(TEXT("Time"), ); JsonWriter->WriteArrayStart("Data"); for (int i = 0; i < (); i++) { JsonWriter->WriteObjectStart(); JsonWriter->WriteValue(TEXT("key1"), [i].key1); JsonWriter->WriteValue(TEXT("key2"), [i].key2); JsonWriter->WriteObjectEnd(); } JsonWriter->WriteArrayEnd(); JsonWriter->WriteObjectEnd(); JsonWriter->Close(); //写入文件 FFileHelper::SaveStringToFile(JsonStr, *_path); }