NotesJSONArray 或 NotesJSONNavigator 无法正确解析空值

NotesJSONArray or NotesJSONNavigator can't parse empty values properly

最近将 Domino 服务器从 11.0.0 升级到 11.0.1 FP2 后,我遇到了一个问题。 该问题与使用原生 NotesJSON类 解析 JSON 有关,请参阅下面的代码片段。

1.注释JSON数组

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

输出有一些损坏的字符。它仅在 param1 或 param2 具有空值的情况下发生。我想知道这是 Domino 中的问题还是我做错了什么?在大多数情况下它不起作用,但有时它确实有效。

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

2。笔记JSON导航器

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

这给出了非常相似的结果,f.x。

param3 = xm■ chemas/domino_11_0_1.dtd

环境: 1 个 Domino 服务器 11.0.1 FP2,Windows。客户端 Notes 11.0.1 上的相同问题。 FP2

当我这样做时:

MsgBox jsonNav.Stringify()

显示正确的字符串。

任何想法将不胜感激。

我联系了 HCL,他们确认这是对 11.0.1 FP2 的回归。

将在下一个版本中修复,但目前还没有解决该问题。

你可以通过这个link关注这个问题:

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