Changed the definition of the dynamic lookup operator.
Now the following does not throw an exception:
If a key in a path does not exist a JsonNull value is returned instead of an exception being thrown.
Pattern matching can be used to deal with the final value. I believe this approach is more practical as the checking of keys at every level is not necessary.