我正在尝试从如下所示的字符串中获取会话 ID:
{"url":"","port":1337,"status":"OK kPzKTe0SNYGRWsPxoiK8jg5qllvPLn7hG4MRFSjqU60w4525175","session":"kPzKTe0SNYGRWsPxoiK8jg5qllvPLn7hG4MRFSjqU60w4525175","username":"foobar","secret":"1c25687b71f183e53009dd0156becfe5","user_id":1337,"vip":0}
它是“session”之后的id: kPzKTe0SNYGRWsPxoiK8jg5qllvPLn7hG4MRFSjqU60w4525175
我尝试了很多分割和其他东西,但到目前为止还无法完成。有任何想法吗?顺便说一句:输出并不总是相同的顺序。每次我请求时,URL 状态会话都会更改位置。
Function MySplitFunction()
FrmConsole.Console.Text = FrmConsole.Console.Text & "[API] getting sid" & vbCrLf
Dim client As New WebClient
Dim sessionid As String = client.DownloadString("https://www.spin.de/api/login?login=usr;pw=pass;server=1337")
Dim Splitted() As String = sessionid.Split(New String() {"""session""", ","}, StringSplitOptions.None)
FrmConsole.Console.Text = FrmConsole.Console.Text & "SID: " & Splitted(1) & vbCrLf
End Function
将 JSON 文本复制到剪贴板,然后使用
Edit>Paste Special>Paste JSON as Classes
创建类。然后使用 System.Text.Json
进行反序列化:
Imports System.Text.Json
Module Program
Sub Main(args As String())
Dim myJsonString = "{""url"":"""",""port"":1337,""status"":""OK kPzKTe0SNYGRWsPxoiK8jg5qllvPLn7hG4MRFSjqU60w4525175"",""session"":""kPzKTe0SNYGRWsPxoiK8jg5qllvPLn7hG4MRFSjqU60w4525175"",""username"":""foobar"",""secret"":""1c25687b71f183e53009dd0156becfe5"",""user_id"":1337,""vip"":0}"
Dim myJsonObject = JsonSerializer.Deserialize(Of MyJsonClass)(myJsonString)
Console.WriteLine(myJsonObject.session)
Console.WriteLine("Finished.")
Console.ReadLine()
End Sub
End Module
Public Class MyJsonClass
Public Property url As String
Public Property port As Integer
Public Property status As String
Public Property session As String
Public Property username As String
Public Property secret As String
Public Property user_id As Integer
Public Property vip As Integer
End Class