VB.NET 如何从 JSON 字符串中获取会话 ID

问题描述 投票:0回答:1

我正在尝试从如下所示的字符串中获取会话 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
vb.net split sessionid
1个回答
1
投票

将 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
© www.soinside.com 2019 - 2024. All rights reserved.