Here my code, and it works.
FString projectDir = FPaths::GameDir();
projectDir += "/Content/data/events.json";
//
if (!FPlatformFileManager::Get().GetPlatformFile().FileExists(*projectDir))
{
UE_LOG(ShimLog, Warning, TEXT("FILE NOT FOUND %s"), *projectDir);
return;
}
FString FileData = "TEST";
FFileHelper::LoadFileToString(FileData, *projectDir);
TSharedPtr<FJsonObject> JsonParsed;
TSharedRef<TJsonReader<TCHAR>> JsonReader = TJsonReaderFactory<TCHAR>::Create(FileData);
if (FJsonSerializer::Deserialize(JsonReader, JsonParsed))
{
TArray <TSharedPtr<FJsonValue>> zonesJs = JsonParsed->GetArrayField("Zones");
for (int itZones = 0; itZones != zonesJs.Num(); itZones++) {
TSharedPtr<FJsonObject> temp = zonesJs[itZones]->AsObject();
TArray <TSharedPtr<FJsonValue>> eventJs = temp->GetArrayField("events");
for (int itEvents = 0; itEvents != eventJs.Num(); itEvents++) {
TSharedPtr<FJsonObject> tempEventJs = eventJs[itEvents]->AsObject();
FString nameEvents = tempEventJs->GetStringField("name");
}
}
}
else {
UE_LOG(ShimLog, Warning, TEXT("JSON KO"));
}