2016-08-14 63 views
-2

我打電話Visual Basic中的API,並返回我:解析API調用的輸出,VB.net

"access_token": "21652337f6733aec846eecd28bc421642a040ed68fd288bb2e1b96a3fa3", 
"token_type": "bearer", 
"expires_in": 7776000, 
"created_at": 1471158248 

我可以保存此響應變量,但我怎麼過濾掉一切但訪問令牌,然後將其保存到一個變量?

謝謝。

+0

看起來像一個JSON響應的*部分*(也許是一個OAuth令牌),這意味着它應該被反序列化或可能被解析。 – Plutonix

+0

是的,它就是這樣。 – dpskipper

+0

[訪問imgUr通過OAuth(上傳到用戶帳戶)](http://stackoverflow.com/a/24270278/1070452) – Plutonix

回答

1
Public Function GetAccessToken(input As String) As String 
    Dim result = System.Text.RegularExpressions.Regex.Match(input, """access_token"":\s*""([^""]*)""") 
    If result.Success Then 
     Return result.Groups(1).Value 
    End If 
    Return "" 
End Function 
+0

謝謝你的工作,但它不完整。我從你的代碼中得到的輸出給了我整個access_token行。我只想要實際的隨機字符串減去引號。所以我的輸出將如下所示:21652337f6733aec846eecd28bc421642a040ed68fd288bb2e1b96a3fa3 ...沒有更多。謝謝您的幫助。 – dpskipper

+0

奇怪,你確定你完全複製了嗎?定義的捕獲組只有1個,所以組(0)會給出整條線,組(1)應該給出你的價值。 – FloatingKiwi

+0

好吧,沒有。我沒有完全複製它,因爲你的公共職能不會在我的子團隊中工作,所以我不得不對弗蘭肯斯坦這個我有限的VB知識。我使用的這一行是這樣的:Dim result = System.Text.RegularExpressions.Regex.Match(input,「」「access_token」「:\ s *」「([^」「] *)」「」)和when我打印result.value的輸出我得到整個訪問令牌行。我確實設法儘可能用最複雜的方法解決這個問題,但它確實有效。如果你可以使這一行只包括訪問令牌減去引號,我會很高興。 – dpskipper