我试着写一个VBA If语句 我正在检查是否存在某些JSON节点。
有三种类型,第一节点,延续节点和格式错误的空节点。
它一直挂在第一个上面。
If Not jSonRoot.child("MediaType").child("first") Is Nothing Then
'First Pass
ElseIf Not jSonRoot.child("second") Is Nothing Then
'Continuation
Else
'Json is nothing, malformed.
End If
答案 0 :(得分:1)
我猜有时候,没有MediaType
个孩子;在这种情况下,第一个If
会爆炸,因为您试图在.child("first")
上致电Nothing
。
如果我是对的,可悲的是,你必须将第一个条件分成单独的If
语句,因为VBA没有And
的短路:
If Not jSonRoot.child("MediaType") Is Nothing Then
If Not jSonRoot.child("MediaType").child("first") Is Nothing Then
'First Pass
Else
'Handle case where there's a MediaType but no .child("first")
End If
ElseIf Not jSonRoot.child("second") Is Nothing Then
'Continuation
Else
'Json is nothing, malformed.
End If