NotesJsonNavigator.getNthElement does not obey boundries
I stumbled upon an issue with NotesJsonNavigator getNthElement(index) method.
It looks like there is no boundry check, which leads to some inconsitent behaviour and unpredictable results.
Here is the code that I used in my test.
%REM Sub testJsonNavGetNthElement %END REM Public Sub testJsonNavGetNthElement Dim s As New NotesSession Dim jsnav As NotesJSONNavigator Dim el As NotesJSONElement Set jsnav = s .CreateJSONNavigator (|{ "element1" : "value 1" , "element2" : "value 2" , "element3 " : "value 3" }|) Set el = jsnav .GetNthElement (0) Stop Set el = jsnav .GetNthElement (1) Stop Set el = jsnav .GetNthElement (2) Stop Set el = jsnav .GetNthElement (3) Stop Set el = jsnav .GetNthElement (1000) Stop End Sub |
The issue occurs with index < 1 and > upper bound of the array.
Index 0 AND index 1 both return the same value; “value 1“.
Index 1000 returns NULL or nothing.
This is not the expected behaviour. At least I would expect some “out of bounds” error.Also, it is not clear for me what the base for the index is. Do we start counting at 0 or do we start with 1 ?
According to the documentation, the index is 1-based.