วันก่อนเขียนบทความเรื่อง แปลง JSON STRING เป็น CLASS ที่พร้อมใช้กับ C# ไป แล้วก็มีกัลยาณมิตรได้เข้ามาแนะนำแจ้งว่า วิธีแปลง JSON string เป็น class นี่ สามารถทำได้ง่าย ๆ บน Visual Studio ได้เลยนะ ผมเองก็ถึงกับนั่งอึ้งว่ามันง่ายมากเลย แถมทียังแปลง XML เป็น class ได้ด้วย และแปลงทั้ง JSON, XML เป็น class สำหรับ VB.Net ได้อีกด้วยนะ
Feature ที่ว่านั้นชื่อเสียงเรียงนามว่าอะไร
มันมีชื่อว่า Paste Special ที่ซ่อนตัวอยู่ในเมนูบาร์ภายใต้เมนู Edit อีกที หน้าตาก็ตามภาพเลยครับ
มาลองทำกันดูเลย
ขี้เกียจพิมพ์อะไรเยอะละ เอาเป็นว่าไปลองทำตามกันได้ตามขั้นตอนต่อไปนี้เลยครับ
1. เตรียม JSON string ต้นฉบับ ให้ลองไปเอาตัวอย่างได้ที่ http://jsonapi.org/
{
"links": {
"self": "http://example.com/articles",
"next": "http://example.com/articles?page[offset]=2",
"last": "http://example.com/articles?page[offset]=10"
},
"data": [
{
"type": "articles",
"id": "1",
"attributes": {
"title": "JSON API paints my bikeshed!"
},
"relationships": {
"author": {
"links": {
"self": "http://example.com/articles/1/relationships/author",
"related": "http://example.com/articles/1/author"
},
"data": {
"type": "people",
"id": "9"
}
},
"comments": {
"links": {
"self": "http://example.com/articles/1/relationships/comments",
"related": "http://example.com/articles/1/comments"
},
"data": [
{
"type": "comments",
"id": "5"
},
{
"type": "comments",
"id": "12"
}
]
}
},
"links": {
"self": "http://example.com/articles/1"
}
}
],
"included": [
{
"type": "people",
"id": "9",
"attributes": {
"first-name": "Dan",
"last-name": "Gebhardt",
"twitter": "dgeb"
},
"links": {
"self": "http://example.com/people/9"
}
},
{
"type": "comments",
"id": "5",
"attributes": {
"body": "First!"
},
"relationships": {
"author": {
"data": {
"type": "people",
"id": "2"
}
}
},
"links": {
"self": "http://example.com/comments/5"
}
},
{
"type": "comments",
"id": "12",
"attributes": {
"body": "I like XML better"
},
"relationships": {
"author": {
"data": {
"type": "people",
"id": "9"
}
}
},
"links": {
"self": "http://example.com/comments/12"
}
}
]
}
2. เปิด Visual Studio ขึ้นมา ถ้ายังไม่มีก็โหลดและติดตั้งให้เสร็จเองนะครับ (ฮา)
3. เลือกเมนู File -> New -> File แล้วเลือก C# Class และกด Open
4. ลบ Initial code ออกจากไฟล์ให้หมด
5. เลือกเมนู Edit-> Paste Special -> Paste JSON As Classes
6. ผลลัพธ์ได้เป็น C# class พร้อมใช้แล้ว
public class Rootobject
{
public Links links { get; set; }
public Datum[] data { get; set; }
public Included[] included { get; set; }
}
public class Links
{
public string self { get; set; }
public string next { get; set; }
public string last { get; set; }
}
public class Datum
{
public string type { get; set; }
public string id { get; set; }
public Attributes attributes { get; set; }
public Relationships relationships { get; set; }
public Links3 links { get; set; }
}
public class Attributes
{
public string title { get; set; }
}
public class Relationships
{
public Author author { get; set; }
public Comments comments { get; set; }
}
public class Author
{
public Links1 links { get; set; }
public Data data { get; set; }
}
public class Links1
{
public string self { get; set; }
public string related { get; set; }
}
public class Data
{
public string type { get; set; }
public string id { get; set; }
}
public class Comments
{
public Links2 links { get; set; }
public Datum1[] data { get; set; }
}
public class Links2
{
public string self { get; set; }
public string related { get; set; }
}
public class Datum1
{
public string type { get; set; }
public string id { get; set; }
}
public class Links3
{
public string self { get; set; }
}
public class Included
{
public string type { get; set; }
public string id { get; set; }
public Attributes1 attributes { get; set; }
public Links4 links { get; set; }
public Relationships1 relationships { get; set; }
}
public class Attributes1
{
public string firstname { get; set; }
public string lastname { get; set; }
public string twitter { get; set; }
public string body { get; set; }
}
public class Links4
{
public string self { get; set; }
}
public class Relationships1
{
public Author1 author { get; set; }
}
public class Author1
{
public Data1 data { get; set; }
}
public class Data1
{
public string type { get; set; }
public string id { get; set; }
}
เป็นไงหล่ะ ง่ายสุด ๆ เลย ไม่ต้องเมื่อยนั่งพิมพ์เองทั้งหมดประหยัดเวลา จะได้เอาเวลานั่งค้น stackoverflow ได้เยอะขึ้น 😛 หวังว่าจะเป็นประโยชน์นะครับ


