Problem with deserialization of data, from custom asset type

I have this code used to saving/loading asset in editor:

void UJsonDataAsset::Serialize(FArchive& Ar)
{
	Super::Serialize(Ar);
	if (Ar.IsLoading())
	{
		int32 ObjectNum;
		Ar << ObjectNum;

		for (int32 ObjIdx = 0; ObjIdx < ObjectNum; ObjIdx++)
		{
			FName KeyName;
			Ar << KeyName;

			FMyJsonContainer Data;// = nullptr;
			//Data << Ar;

			ObjectMap.Add(KeyName, Data);
		}
	}
	else if (Ar.IsSaving())
	{
		if (ObjectMap.Num() > 0)
		{
			int32 ObjectNum = ObjectMap.Num();
			Ar << ObjectNum;

			for (auto It = ObjectMap.CreateIterator(); It; ++It)
			{
				FName KeyName = It.Key();
				Ar << KeyName;

				FMyJsonContainer* Data = &It.Value();
				Ar << Data;
			}
		}
	}
}

Also overloaded operator:
FORCEINLINE FArchive& operator<<(FArchive &Ar, FMyJsonContainer* Data)
{
Ar << Data->MyString;
};

Now, When I try to load my asset in editor, the first iteration of for loop, is working, but then at second:

D:\Unreal\RPGEngine\UnrealEngine-4.4\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp(3609): Fatal error:
Bad name index 12/10

I get this error.

But keys, while saving seems to serialize properly.

It seems like solving this:

https://answers.unrealengine.com/questions/79177/farchive-operator-problem-with-overloaded-operator.html

Also solved this problem.

The issue was, that not entire data was properly deserialized, and on second iteration, it tried to deserialize FMyJsonContainer into FName. Or so I think at least (;.