basquang™ on clouds

May 14, 2009

JSON và LINQ to JSON

Filed under: JSON — basquang @ 4:12 AM

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.

Đây là 1 cấu trúc dữ liệu phổ dụng. Hầu như tất cả các ngôn ngữ lập trình hiện đại đều hổ trợ chúng trong 1 hình thức nào đó. Chúng tạo nên ý nghĩa của 1 định dạng hoán vị dữ liệu với các ngôn ngữ lập trình cũng đã được cơ sở hoá trên cấu trúc này.

Với định dạng dữ liệu kiểu text này chúng ta dễ dàng trao đổi dữ liệu giữa 2 hệ thống với nhau, trên nhiều môi trường khác nhau. Với các lập trình viên .Net, nếu các bạn đã từng quen với việc sử dụng LINQ to XML, thì với LINQ to JSON trong thư viện JSON.NET, chúng ta thấy có khá nhiều điểm tương đồng

List<Post> posts = GetPosts();
JObject rss =
  new JObject(
    new JProperty("channel",
      new JObject(
        new JProperty("title", "James Newton-King"),
        new JProperty("link", "
http://james.newtonking.com"),
        new JProperty("description", "James Newton-King’s blog."),
        new JProperty("item",
          new JArray(
            from p in posts
            orderby p.Title
            select new JObject(
              new JProperty("title", p.Title),
              new JProperty("description", p.Description),
              new JProperty("link", p.Link),
              new JProperty("category",
                new JArray(
                  from c in p.Categories
                  select new JValue(c)))))))));

Khi xuất ra JSON sẽ có dạng như sau:

{
  "channel": {
    "title": "James Newton-King",
    "link": "
http://james.newtonking.com",
    "description": "James Newton-King’s blog.",
    "item": [
      {
        "title": "Json.NET 1.3 + New license + Now on CodePlex",
        "description": "Annoucing the release of Json.NET 1.3, the MIT license and the source being available on CodePlex",
        "link": "
http://james.newtonking.com/projects/json-net.aspx",
        "category": [
          "Json.NET",
          "CodePlex"
        ]
      },
      {
        "title": "LINQ to JSON beta",
        "description": "Annoucing LINQ to JSON",
        "link": "
http://james.newtonking.com/projects/json-net.aspx",
        "category": [
          "Json.NET",
          "LINQ"
        ]
      }
    ]
  }
}

Advertisements

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: