私は以前の答えを試してみました。 JSON形式のサーバーから抽出された私のデータは私に複数のオブジェクトでキーを与えているまで、すべてが正常に動作しますVBAのJsonオブジェクトを読む
Excel VBA: Parsed JSON Object Loop
この {「messageCode」のようなもの:ヌル、「responseStatus」:「成功」 {"fxCcyPair": "USD"}、{"fxCcyPair": "EUR"}、{"fxCcyPair": "JPY"}、{" "resultObject2"の値を取得するにはどうすればよいですか? "resultObject2"の値はどのようにして取得できますか?私が参照する鍵がないので、オブジェクトからループを外すことができないためです。
Public Sub InitScriptEngine()
Set ScriptEngine = New ScriptControl
ScriptEngine.Language = "JScript"
ScriptEngine.AddCode "function getProperty(jsonObj, propertyName) { return jsonObj[propertyName]; } "
ScriptEngine.AddCode "function getKeys(jsonObj) { var keys = new Array(); for (var i in jsonObj) { keys.push(i); } return keys; } "
ScriptEngine.AddCode "function getSentenceCount(){return obj.sentences.length;}"
ScriptEngine.AddCode "function getSentence(i){return obj.sentences[i];}"
End Sub
Public Function DecodeJsonString(ByVal JsonString As String)
Set DecodeJsonString = ScriptEngine.Eval("(" + JsonString + ")")
End Function
Public Function GetProperty(ByVal JsonObject As Object, ByVal propertyName As String) As Variant
GetProperty = ScriptEngine.Run("getProperty", JsonObject, propertyName)
End Function
Public Function GetObjectProperty(ByVal JsonObject As Object, ByVal propertyName As String) As Object
Set GetObjectProperty = ScriptEngine.Run("getProperty", JsonObject, propertyName)
End Function
Public Function GetKeys(ByVal JsonObject As Object) As String()
Dim Length As Integer
Dim KeysArray() As String
Dim KeysObject As Object
Dim index As Integer
Dim Key As Variant
Set KeysObject = ScriptEngine.Run("getKeys", JsonObject)
Length = GetProperty(KeysObject, "length")
ReDim KeysArray(Length - 1)
index = 0
For Each Key In KeysObject
KeysArray(index) = Key
Debug.Print Key
index = index + 1
Next
GetKeys = KeysArray
End Function
おかげ
複数のアプローチがあります。リンク先の質問に記載されています:あなたの質問に使用しているコードを含めてください。 –
@TimWilliamsご返信ありがとうございます。私はクエストインで自分のコードを更新 – user1560963