Wie wird in Excel VBA unter Windows eine Schleife durch ein JSON-Array durchgeführt, das analysiert wurde?

hier meine eigene Frage beantworten.
Ich habe mit JSON in Excel VBA gearbeitet und viele Ergebnisse veröffentlicht, die ich im Q & A-Format veröffentlichen werde.https: //stackoverflow.com/help/self-answe http: //blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions

Also woanders auf stackoverflow kann man Fragen zum Parsen von JSON in VBA sehen, aber sie scheinen einen oder zwei Tricks zu verpassen.

Zu Beginn verzichte ich auf benutzerdefinierte JSON-Parsing-Bibliotheken und verwende stattdessen die Eval-Methode von ScriptControl als Grundlage für meinen gesamten JSON-Code. Außerdem geben wir eine Präferenz für native Microsoft-Lösungen an.

Hier ist eine vorherige Frage Wie kann in Excel VBA unter Windows das Problem der Punktsyntax-Überquerung von analysiertem JSON, das durch das Großschreibungsverhalten von IDE unterbrochen wurde, behoben werden? worauf diese Frage aufbaut. Es zeigt, wie die Verwendung von VBA.CallByName robuster ist als die Verwendung der Punktsyntax zum Durchlaufen eines analysierten JSON-Objekts.

In dieser Frage wird gefragt, wie ein geparstes JSON-Array durchlaufen wird. Erstens ist hier ein Miniskript-Ansatz mit einer Hutspitze zu ozmikehttps: //stackoverflow.com/users/334106/ozmik

'Tools->References->
'Microsoft Script Control 1.0;  {0E59F1D2-1FBE-11D0-8FF2-00A0D10038BC}; C:\Windows\SysWOW64\msscript.ocx

Private Sub TestJSONParsingArrayWithMiniScript()
    'Hat tip to ozmike  https://stackoverflow.com/users/334106/ozmike
    'Based on https://stackoverflow.com/questions/5773683/excel-vba-parsed-json-object-loop#19359035
    Dim oScriptEngine As ScriptControl
    Set oScriptEngine = New ScriptControl
    oScriptEngine.Language = "JScript"
    oScriptEngine.AddCode "Object.prototype.myitem=function( i ) { return this[i] } ; "

    Dim sJsonString As String
    sJsonString = "[ 1234, 2345 ]"

    Dim objJSON As Object
    Set objJSON = oScriptEngine.Eval("(" + sJsonString + ")")

    Debug.Assert objJSON.myitem(0) = 1234
    Debug.Assert objJSON.myitem(1) = 2345


End Sub

Aber ob Sie es glauben oder nicht VBA.CallByName kann nativ nicht nur verwendet werden, um die Länge eines Arrays zu ermitteln, sondern auch, um auf Elemente zuzugreifen. Siehe Antwort

Dies ist Frage 2 der Serie von 5. Hier ist die vollständige Serie

Q1 Wie kann in Excel VBA unter Windows das Problem der Punktsyntax-Überquerung von analysiertem JSON, das durch das Großschreibungsverhalten von IDE unterbrochen wurde, behoben werden?

Q2Wie wird in Excel VBA unter Windows eine Schleife durch ein JSON-Array durchgeführt, das analysiert wurde?

Q3Wie wird in Excel VBA unter Windows eine JSON-Darstellung mit Zeichenfolgen anstelle von "[object Object]" für analysierte JSON-Variablen erstellt?

Q4Wie kann man in Windows Excel VBA JSON-Schlüssel abrufen, um "Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht" zu verhindern?

Q5Was ist in Excel VBA unter Windows für analysierte JSON-Variablen überhaupt JScriptTypeInfo?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage