如何在lotusscript(ls.snapps.jsonreader)中的json对象中迭代键盘



相关问题:试图获得Lotusscript JSON阅读器

如果我们在JSON对象中不知道键,该如何迭代关键名称?如果不阵列。

{   "colorsArray":{
        "red":"#f00",
        "green":"#0f0",
        "blue":"#00f",
        "cyan":"#0ff",
        "magenta":"#f0f",
        "yellow":"#ff0",
        "black":"#000" ,
        .....
    }
}

如果存在vresult.key?

如果您想通过'colorsarray'迭代',而您不知道钥匙,那么您可以做这样的事情:

Dim jsonReader As JSONReader
Dim vResults As Variant
Dim vPieces As Variant, vResultData  As variant
Dim sJSON As String
sJson= |{   "colorsArray":[{
    "red":"#f00",
    "green":"#0f0",
    "blue":"#00f",
    "cyan":"#0ff",
    "magenta":"#f0f",
    "yellow":"#ff0",
    "black":"#000"
}
]}|
Set jsonReader = New JSONReader
Set vResults = jsonReader.parse(sJson)
Set vResultData = vResults.GetItemValue("colorsArray")      
ForAll vResult In vResultData.Items
    Forall tmp In vResult.Items         
        Print "Key: " +  ListTag(tmp) + " Value: " + tmp    
    End ForAll
End ForAll

,如果您想检查是否存在一些密钥,请写一个函数:

Function isKeyAvailable(items As Variant, keyName As String) As Boolean
    If IsElement ( items(keyName) ) Then
        isKeyAvailable = true
    Else
        isKeyAvailable = false
    End If
End Function

然后您可以检查密钥是否存在:

...
Set vResultData = vResults.GetItemValue("colorsArray")      
ForAll vResult In vResultData.Items
    If isKeyAvailable(vResult.Items, "green") Then
        Print "Exist"
    Else
        Print "Does not exist"
    End If
End ForAll
...

如果您不熟悉lotusscript中的列表,此链接将为您提供帮助:

https://www.ibm.com/support/knowledgecenter/en/ssvrgu_9.0.1/basic/lsaz_working_with_with_lists.html

最新更新