In my roguelike, I keep a lot of objects confined to a virtual grid by assigning each of them a vector (of two integers) showing their position. I never store any of them in any structure. When I want to find one, I just loop through all the children of their parent object, looking for a particular coordinate (vector). Since the game is turn-based, it doesn't have to be especially fast.
If I needed more speed, I might take each and assign them to a Dictionary by "dic[Vector2(<x>, <y>)] = <object>". You can use 2D Arrays in gdscript, but I find it more complicated. That's just one way to do things.
store_var() is a method of File that stores a Variant in a binary format. It supports (as far as I know) all of the native godot objects, so it can be simpler than json.