vb.net

[vb]讀取網頁json檔並使用

VB原生的json功能好像很爛(?),所以還是覺得用Newtonsoft.Json這個好了,功能也比較完整

要使用Newtonsoft.Json 首先要先去你的 [專案]選單->[管理nuget套件]

在瀏覽那邊搜尋Newtonsoft.Json 並且安裝,目前最新是13.0.1版(2021/3/23),裝好後這樣就可以了

    Function get_web_jsondata(url As String)

        Dim webRequest As WebRequest = WebRequest.Create(url)
        Dim request As HttpWebRequest = CType(webRequest, HttpWebRequest)
        Dim JsonStr As String

        request.Method = "GET"
        request.ContentType = "application/json"

        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)

        Using reader As StreamReader = New StreamReader(response.GetResponseStream())
            JsonStr = reader.ReadToEnd()
        End Using

        Return JsonStr
    End Function
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim JsonStr = get_web_jsondata("https://codefling.com/capi/category-2/?do=apicall")
        Dim Obj As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.JsonConvert.DeserializeObject(JsonStr)
        TextBox1.Text = Obj.Item("file").ElementAt(0).Item("file_name").ToString
    End Sub

可以在上圖看到 我們有一個get_web_jsondata這個function ,只是拿來抓網頁上回傳的json資料而已,

主要程式碼在下面這個,把你的JsonStr的字串改成物件的概念

Dim Obj As Newtonsoft.Json.Linq.JObject = Newtonsoft.Json.JsonConvert.DeserializeObject(JsonStr) 

之後你就可以操作你的obj了

如果是json你就可以用Obj.Item(“file”) 這樣,但是有些json裡面又包含到array 你就會需要像是Obj.Item(“file”).ElementAt(0)這樣來操作array的部分 數字0就是array的key,在自己切換或是跑迴圈之類即可

Be the First to comment.

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

(若看不到驗證碼,請重新整理網頁。)