UE_读写json
//读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);
}