相关问题:试图获得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