vb.net – 如何使用VB阅读JSON http post响应

前端之家收集整理的这篇文章主要介绍了vb.net – 如何使用VB阅读JSON http post响应前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_0@ 我有以下代码,它连接到 PHP服务器并成功检索数据,我对VB不是很好,我如何读取JSON响应文本并提取它的元素?
  1. Public Class Form1
  2. Private Sub submit_Click(sender As System.Object,e As System.EventArgs) Handles submit.Click
  3. Dim user As String
  4. Dim pass As String
  5. user = uname.Text
  6. pass = passwd.Text
  7.  
  8. Dim request As WebRequest = WebRequest.Create("http://domain.com/test.PHP")
  9. request.Method = "POST"
  10. Dim postData As String
  11. postData = "username=" & user & "&password=" & pass
  12. Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
  13. request.ContentType = "application/x-www-form-urlencoded"
  14. request.ContentLength = byteArray.Length
  15. Dim dataStream As Stream = request.GetRequestStream()
  16. dataStream.Write(byteArray,byteArray.Length)
  17. dataStream.Close()
  18. Dim response As WebResponse = request.GetResponse()
  19. Console.WriteLine(CType(response,HttpWebResponse).StatusDescription)
  20. dataStream = response.GetResponseStream()
  21. Dim reader As New StreamReader(dataStream)
  22. Dim responseFromServer As String = reader.ReadToEnd()
  23. If responseFromServer = "0" Then
  24. MsgBox("Login Failed")
  25. Else
  26. MsgBox("json data")
  27. End If
  28. reader.Close()
  29. dataStream.Close()
  30. response.Close()
  31. End Sub
  32. End Class

JSON响应将是这样的:

  1. {"comments": [
  2. {
  3. "comment" : "some text","date" : "some date","user" : "user name"
  4. },{
  5. "comment" : "some text","user" : "user name"
  6. }
  7. ],"messages": [ .... ]
  8. }

如何将json字符串输出到:

  1. Comments
  2. user date comment
  3. -----------------------------------
  4. user 1 date 1 comment 1
  5. user 2 date 2 comment 2
  6.  
  7. Messages
  8. user date message
  9. -----------------------------------
  10. user 1 date 1 message 1
  11. user 2 date 2 message 2
经过长时间的研究和许多测试,我发现一个非常好的扩展名为Newtonsoft.json,它非常简单,可以从包管理器控制台安装如下:
  1. install-package Newtonsoft.json

包括它:

  1. Imports Newtonsoft.Json
  2. Imports Newtonsoft.Json.Linq

那么我所需要做的就是声明元素名称和值:

  1. Else
  2. Dim json As String = responseFromServer
  3. Dim ser As JObject = JObject.Parse(json)
  4. Dim data As List(Of JToken) = ser.Children().ToList
  5. Dim output As String = ""
  6.  
  7. For Each item As JProperty In data
  8. item.CreateReader()
  9. Select Case item.Name
  10. Case "comments"
  11. output += "Comments:" + vbCrLf
  12. For Each comment As JObject In item.Values
  13. Dim u As String = comment("user")
  14. Dim d As String = comment("date")
  15. Dim c As String = comment("comment")
  16. output += u + vbTab + d + vbTab + c + vbCrLf
  17. Next
  18.  
  19. Case "messages"
  20. output += "Messages:" + vbCrLf
  21. For Each msg As JObject In item.Values
  22. Dim f As String = msg("from")
  23. Dim t As String = msg("to")
  24. Dim d As String = msg("date")
  25. Dim m As String = msg("message")
  26. Dim s As String = msg("status")
  27. output += f + vbTab + t + vbTab + d + vbTab + m + vbTab + s + vbCrLf
  28. Next
  29.  
  30. End Select
  31. Next
  32. MsgBox(output)
  33. End If

希望有人会发现这有用

猜你在找的VB相关文章