Search code examples
lotus-dominolotusscript

NotesJSONArray or NotesJSONNavigator can't parse empty values properly


I have experienced an issue after we recently upgraded Domino server from 11.0.0 to 11.0.1 FP2. The issue is related to parsing JSON with native NotesJSON classes, see snippet below.

1. NotesJSONArray

content = |[{"param1":"value1", "param2":""},{"param1":"", "param2":"AAA"},{"param1":"", "param2":""}]|

Set jsonNav = session.Createjsonnavigator(Content)
        
Set jsonEl = jsonNav.Getfirstelement()
While Not jsonEl Is Nothing
    Set jsonObj = jsonEl.Value
    Set jsonEl2 = jsonObj.Getfirstelement()
    While Not jsonEl2 Is Nothing
        Print jsonEl2.Name
        Print "<br/>"
        Print jsonEl2.value
        Set jsonEl2 = jsonObj.Getnextelement()
    Wend
    
    Set jsonEl = jsonNav.Getnextelement
wend

The output got some broken characters. It only occurs in case if param1 or param2 have empty value. I wonder if it's an issue in Domino or I do something wrong? In most of cases it does not work but sometimes it actually works.

param1
value1
param2
param1
Ê$■ · ¦¦.¦¦Çã
param2
AAA
param1
$P■ · ¦¦.¦¦░
param2

2. NotesJSONNavigator

content = |{"param1":"","param2":"","param3":""}|

Set jsonNav = session.Createjsonnavigator(Content)
Set jsonEl = jsonNav.Getfirstelement()
While Not jsonEl Is Nothing
    msgbox jsonEl.Name & " = " & jsonEl.value
    
    Set jsonEl = jsonNav.Getnextelement()
Wend

That gives pretty similar results, f.x.

param3 = xm■ chemas/domino_11_0_1.dtd

Environment: 1 Domino server 11.0.1 FP2, Windows. Same issue on client Notes 11.0.1. FP2

When I do:

MsgBox jsonNav.Stringify()

That show proper string.

Any idea would be very much appreciated.


Solution

  • I have contacted HCL and they confirmed it's a regression on 11.0.1 FP2.

    It will be fixed within next release, but so far no solution to that issue.

    You can follow the issue by this link:

    https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0084703&sys_kb_id=4157fd171b8c6810a2f48661cd4bcbb5