Ich habe versucht, die Methode in einem anderen Thread zu folgen, aber es gibt bestimmte Teile im Code, die ich nicht verstehe, und es hat nicht für mich funktioniert. Und ich könnte kommentieren, da ich 50 Reputationen nicht erreicht habe. (Ich habe die Antwort von dem anderen Thread)Analysiere JSON-Array in Excel VBA
Ich versuche, auf Json Antwort wie folgt zuzugreifen, möchte ich das Array nach Details in Excel horizontal (Spalte A1-A6), aber in dem anderen Beitrag, Ich verstehe nicht, was die Skriptsteuerungsmethode ist.
Und es gab keine Kommentarzeile zu erklären, was es ist. Und ich versuchte, es zu benutzen, nur den Code bei sc.Eval fehlgeschlagen „var obj = (“ & json & „)“
Auch die Linie json = {bekommen json hier} ist fehlgeschlagen, stattdessen ersetzt ich das Json = resp, wobei resp die Ausgabe von der API zurückgegeben wird.
Ihre Hilfe wird sehr geschätzt.
Sub Tester()
Dim json As String
Dim sc As Object
Dim o
Set sc = CreateObject("scriptcontrol")
sc.Language = "JScript"
json = {get your json here}
sc.Eval "var obj=(" & json & ")" 'evaluate the json response
'add some accessor functions
sc.AddCode "function getSentenceCount(){return obj.sentences.length;}"
sc.AddCode "function getSentence(i){return obj.sentences[i];}"
Debug.Print sc.Run("getSentenceCount")
Set o = sc.Run("getSentence", 0)
Debug.Print o.trans, o.orig
End Sub
JSON-Antwort von API
{"details":[
{
"trade":"Micro",
"trade_tenor":"5yr+"
},
{
"trade":"Odd",
"trade_tenor":"10yr+"
},
{
"trade":"Round",
"trade_tenor":"20yr+"
} ]}
"Ich habe versucht, das Verfahren in einem anderen Thread zu folgen" - was Thread ist das? Ihr Code wird nicht kompiliert - Sie haben 'json' als String deklariert, aber dann versucht, etwas zuzuordnen, das kein String ist. –
Hallo, das ist der Beispielcode, den ich bekommen habe. http://stackoverflow.com/questions/14822672/parsing-a-json-object-array-in-excel-vba – Vinnie
Ich habe etwas ähnliches getan, ich habe http.responsetext-Methode in VBA, und ich verarbeitet die Antwort als Zeichenfolge und es hat funktioniert. In diesem Fall stellt sich die Antwort jedoch als Array dar, so dass mein vorheriger Code hier nicht zutrifft, da ich einen JSON-Parser zur Verarbeitung von Schlüsselname verwendet habe. – Vinnie