我有一個JSON我想在VBA中解析。我已經成功解析了「offer」的數組。在「offer」陣列內部是另一個陣列「價格」「USD」。使用VBA和JSON解析嵌套數組
問題是並非每個「offer」對象都有「USD」數組。我試圖創建一個對象,我可以創建一個表格/工作表,但我甚至無法使用調試模式打印對象。這種方法有效,但因爲不是每個Dict OfferDetails都包含「USD」對象。
我想要做的是能夠打印字符串,如果「USD」對象丟失,只需跳過它並只打印具有「USD」的對象。我嘗試了IsMissing(在代碼中),但它在碰到缺少的「USD」對象時失敗。
任何想法如何我可以得到這個字符串與「USD」值?請注意,「USD」是一個數組幷包含多個對象,但我不知道如何解決它們。理想情況下,我想以「提供」的方式解析「美元」。我完全失去了,因爲我在VBA中不是很好
這是一個有效的Web JSON的工作腳本。
Sub getJSONEP_lib_working()
'Need the JsonConverter found here https://github.com/VBA-tools/VBA-JSON
'Need the Microsoft Scripting Runtime
Dim Parsed As Dictionary
Dim Item As Dictionary
Dim OfferDetails As Dictionary
Dim Price As Dictionary
Dim USD As Dictionary
URL = "http://wraymac.com/JSON/example1.json"
url2 = "[{" & """mpn""" & ":" & """41202""" & "}]"
Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
MyRequest.Open "GET", URL
MyRequest.Send
JsonString = MyRequest.ResponseText
Dim json As Object
Set json = JsonConverter.ParseJson(JsonString)
Set Parsed = JsonConverter.ParseJson(MyRequest.ResponseText)
For Each Item In Parsed("results")(1)("items")
For Each OfferDetails In Item("offers")
'I tried this it doesn't work, it fails when it finds a non existent "USD"
If Not IsMissing(OfferDetails("prices")("USD")(1)(1)) Then
Debug.Print OfferDetails("prices")("USD")(1)(1)
Else
Debug.Print "Missing"
End If
x = Item("mpn") & " " & "sku" & " - " & OfferDetails("sku") & "," & "UID" & " - " & OfferDetails("seller")("uid") & " " & OfferDetails("moq") & "packaging" & " = " & OfferDetails("packaging") & " " & OfferDetails("seller")("name") & " " & Item("manufacturer")("name")
Debug.Print x
'This works but fails because not every Dict OfferDetails contains the "USD" object
'x = Item("mpn") & " " & "sku" & " - " & OfferDetails("sku") & "," & "UID" & " - " & OfferDetails("seller")("uid") & " " & OfferDetails("moq") & "packaging" & " = " & OfferDetails("packaging") & " " & OfferDetails("seller")("name") & " " & Item("manufacturer")("name")& " "&OfferDetails("prices")("USD")(1)(1)
Next OfferDetails
Next
End Sub
您可以向我們展示返回的實際JSON字符串嗎? –
這是很長的,我沒有發佈在我的消息的原因。所以你可以在這裏得到它... http://wraymac.com/JSON/example1.json「http://wraymac.com/JSON/example1.json」 如果這不起作用,我可以發佈它 – Wraymac
考慮到這裏和格式化您的JSON有點... http://jsonprettyprint.com/json-pretty-printer.php –