BLOG ĐANG TRONG THỜI GIAN PHÁT TRIỂN, MONG SỰ QUAN TÂM CỦA MỌI NGƯỜI DÀNH CHO BLOG MỚI NÀY CỦA HUNG.PRO.VN

[VB.NET] How to parse json string in Winform

[VB.NET] How to parse json string in Winform
5 min read
JSON (JavaScript Object Noattion) là 1 định dạng hoán vị dữ liệu nhanh. Chúng dễ dàng cho chúng ta đọc và viết. Dễ dàng cho thiết bị phân tích và phát sinh. Chúng là cơ sở dựa trên tập hợp của Ngôn Ngữ Lập Trình JavaScript, tiêu chuẩn ECMA-262 phiên bản 3 - tháng 12 năm 1999. JSON là 1 định dạng kiểu text mà hoàn toàn độc lập với các ngôn ngữ hoàn chỉnh, thuộc họ hàng với các ngôn ngữ họ hàng C, gồm có C, C++, C#, Java, JavaScript, Perl, Python, và nhiều ngôn ngữ khác. Những đặc tính đó đã tạo nên JSON 1 ngôn ngữ hoán vị dữ liệu lý tưởng.

JSON được xây dựng trên 2 cấu trúc:

  • Là tập hợp của các cặp tên và giá trị name-value. Trong những ngôn ngữ khác nhau, đây được nhận thấy như là 1 đối tượng (object), sự ghi (record), cấu trúc (struct), từ điển (dictionary), bảng băm (hash table), danh sách khoá (keyed list), hay mảng liên hợp.
  • Là 1 tập hợp các giá trị đã được sắp xếp. Trong hầu hết các ngôn ngữ, this được nhận thấy như là 1 mảng, véc tơ, tập hợp hay là 1 dãy sequence.
Một chuỗi json được bắt đầu bởi dấu "{" và kết thúc bởi dấu "}".
Có 2 loại json cơ bản:
  1. Json Object
  2. Json Array

I. Json Object:

Được chứa bởi cặp (Name Value, cặp name value cách nhau bởi dấu hai chấm (":"))
Cú pháp mẫu Json Object.
{"firstName":"John", "lastName":"Doe"}


II. Json Array:

Được bao bởi cặp dấu ngoặc vuông "[]"
Cú pháp mẫu Json Array.
"employees":[
  {"firstName":"John", "lastName":"Doe"},
  {"firstName":"Anna", "lastName":"Smith"},
  {"firstName":"Peter", "lastName":"Jones"}
]

Hướng dẫn đọc dữ liệu Json trên VB.NET
Để đọc json mình dưới thiệu 3 công cụ và website sau:
1. Công cụ làm đẹp chuỗi json (https://codebeautify.org/jsonviewer)
2. Công cụ chuyển chuỗi Json Sang Class VB.NET or C#: Sử dụng Json Utils ở link => (http://www.jsonutils.com/)
3. Sử dụng thư viện Json.NET cài đặt vào Project bằng Nuget:
PM> Install-Package Newtonsoft.Json -Version 12.0.3

Bắt đầu thực hành đọc dữ liệu Json (Đọc chuỗi Json phức tạp bao gồm json object và json array).
VD: Chuổi JSON
{"id": "0001", "type": "donut", "name": "Cake", "ppu": 0.55, "batters": {"batter": [{ "id": "1001", "type": "Regular" }, { "id": "1002", "type": "Chocolate" }, { "id": "1003", "type": "Blueberry" }, { "id": "1004", "type": "Devil's Food" } ] }, "topping": [{ "id": "5001", "type": "None" }, { "id": "5002", "type": "Glazed" }, { "id": "5005", "type": "Sugar" }, { "id": "5007", "type": "Powdered Sugar" }, { "id": "5006", "type": "Chocolate with Sprinkles" }, { "id": "5003", "type": "Chocolate" }, { "id": "5004", "type": "Maple" } ] }

Video Demo đọc dữ liệu Json từng bước:

Bước 1: Tạo 1 class với tên clsJson.vb với source code bên dưới
Imports Newtonsoft.Json

Public Class clsJson
    Public Class Batter

        <JsonProperty("id")>
        Public Property Id As String

        <JsonProperty("type")>
        Public Property Type As String
    End Class

    Public Class Batters

        <JsonProperty("batter")>
        Public Property Batter As Batter()
    End Class

    Public Class Topping

        <JsonProperty("id")>
        Public Property Id As String

        <JsonProperty("type")>
        Public Property Type As String
    End Class

    Public Class JsonDemo

        <JsonProperty("id")>
        Public Property Id As String

        <JsonProperty("type")>
        Public Property Type As String

        <JsonProperty("name")>
        Public Property Name As String

        <JsonProperty("ppu")>
        Public Property Ppu As Double

        <JsonProperty("batters")>
        Public Property Batters As Batters

        <JsonProperty("topping")>
        Public Property Topping As Topping()
    End Class
End Class

Bước 2: Source code Full Form Main
Imports Newtonsoft.Json
Imports ReadJsonVB.clsJson

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim json As String = RichTextBox1.Text
        Dim data = JsonConvert.DeserializeObject(Of JsonDemo)(json) &#039;Cái truyền tên Class vào

        &#039;DataGridView1.DataSource = data.Batters.Batter

        DataGridView1.DataSource = data.Topping
        Label2.Text = data.Id
        Label3.Text = data.Type
        Label4.Text = data.Name
        Label5.Text = data.Ppu
   End Sub
End Class

Chúc mọi người thành công. Hay có thể tải source code phía bên dưới để tìm hiểu thêm về thủ thuật trên nhé. (mình đã loại bỏ đi một số thứ để tiện cho người dùng đọc và tìm hiểu rồi nhé - nếu có gì chưa hiểu thì có thể về trang viết bài để tìm hiểu rỏ hơn nhé.)
DOWNLOAD FULL SOURCE CODE

Bạn có thể thích những bài đăng này

  • Chào mọi người, bài viết này mình sẽ chia sẽ cho mọi người một tính nắng đáng thử của CloudFlare mà mình đang tìm hiểu. Nếu bạn đang tìm kiếm một nền tảng serverless nhanh, gọn, v…
  • Levels.fyi, một trang web nghề nghiệp dành cho các chuyên gia, đã đạt được hàng triệu người dùng bằng cách sử dụng một giải pháp Database độc đáo: Google Sheets! Trong những năm đầ…
  • Bài viết này mình sẽ hướng dẫn mọi người đăng ký cho bản thân mình một tên miền phụ is-a.dev cực hay cho anh em muốn làm một trang chia sẽ code. 1. Tạo tệp JSON Đầu tiên, bạn cần …
  • Chào mọi người, bài viết này mình chia sẽ cho mọi người cách fix lỗi con chuột khi lia chuột bị trắng. Chúng ta bắt đầu nhé. Bước 1. Các bạn vào Registry Để vào mục Registry các …
  • Bài viết này mình sẽ hướng dẫn các bạn tạo một chương trình dạng như ConTrol Panel như trên máy tính với những dòng code đơn giản mà không có gì phức tạp cả. Nghe hơi ngầu nhưng…
  • Xin chào mọi người, bài viết này mình sẽ hỗ trợ giải đáp thắc mắc hay ý kiến lỗi từ chương trình do Team Hung.Pro.VN phát triển cho mọi người nhé, nếu đội ngủ chúng tôi chậm xữ l…

3 nhận xét

  1. second ago
    Good post
    1. second ago
  2. second ago
    05/09/2023
    => XUAN BAC 1: 385 - 25 = PC01FF0655038
Hung Pro Blog @ 2025
Chia sẽ kiến thức và tư duy sáng tạo về nhiều ngôn ngữ lập trình khác nhau. Csharp, Visual Studio, Blogger, HTML, Javascript, CSS..v.v
Developed by Jago Desain