Beantwortung meiner eigenen Frage hier.
Ich habe einige Arbeit mit JSON in Excel VBA und viele Erkenntnisse getan zu schreiben, die ich in Q so tue & A-Format https://stackoverflow.com/help/self-answerhttp://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/In Windows Excel VBA, wie Sie JSON-Schlüssel zum Präventieren erhalten "Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht"?
So anderswo auf Stackoverflow eine Frage zum Parsen von JSON in VBA sehen kann, aber sie scheinen einen oder zwei Tricks zu verpassen.
Zunächst kann ich keine benutzerdefinierten JSON-Parsing-Bibliotheken verwenden und stattdessen die Eval-Methode von ScriptControl als Grundlage für meinen gesamten JSON-Code verwenden. Und auch wir drücken eine Präferenz von nativen Microsoft-Lösungen aus.
Hier ist eine vorherige Frage In Excel VBA on Windows, how to mitigate issue of dot syntax traversal of parsed JSON broken by IDE's capitalisation behaviour?, auf der diese Frage aufbaut. Es zeigt, wie die Verwendung von VBA.CallByName robuster ist als die Verwendung der Punktsyntax zum Durchlaufen eines analysierten JSON-Objekts. Auch eine andere Vorfrage In Excel VBA on Windows, how to loop through a JSON array parsed? zeigt, wie man auch zum Zugriff auf Array-Elemente verwenden kann. Aber CallByName gibt einen kuriosen Variablentyp zurück, der im Watch-Fenster als Object/JScriptTypeInfo erscheint und wenn man Debug.Print im unmittelbaren Fenster eingibt (oder über die Variable schwebt) erhält man das nicht informative "[object Object]". In einer anderen Frage in der Reihe In Excel VBA on Windows, how to get stringified JSON respresentation instead of “[object Object]” for parsed JSON variables? Ich präsentiere einige Debugging "Zucker", die eine gute Überprüfung der Variablen ermöglicht.
In dieser Frage frage ich, wie können wir programmatisch eine Liste von Mitgliedern erhalten, mit denen ich die Anwesenheit eines Schlüssels erkennen kann, wird dies dazu beitragen, "Run-Time-Fehler '438': Object nicht zuunterstützen diese Eigenschaft oder Methode "Fehler und erlauben uns, defensiven (hoffentlich" kugelsicheren ") Code zu schreiben?
Dies ist Frage 4 der Serie von 5. Hier ist die vollständige Reihe
Q2 In Excel VBA on Windows, how to loop through a JSON array parsed?
Q5 In Excel VBA on Windows, for parsed JSON variables what is this JScriptTypeInfo anyway?