Glad to help 🙂
To recreate the collection from the "serialized" value, you can use the Split and ForAll functions, along with some of the functions that will help breaking down the strings, such as Left/Mid/Right. So if the value is stored in the variable (or column) called 'stored', then you can use a logic similar to this one below to recreate a collection:
ClearCollect(
Contacts2,
ForAll(
Split(stored, "$"),
{
Name: Left(Result, Find("|", Result) - 1),
Age: Value(Mid(Result, Find("|", Result) + 1))
}))
If you have more than two items in each row, then it may be worth looking into using the Split function again for the rows, even if it may make it a little more complicated:
ClearCollect(
Contacts2,
ForAll(
Split(stored, "$"),
{
Name: First(Split(Result, "|").Result).Result,
Age: Value(Last(Split(Result, "|").Result).Result)
}))
The attached app shows both wais in use.