[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-1-1-all-js2go-ep22-json-javascript-vs-go-all--*":3,"academy-blog-translations-zm6a6smh1in3rsc":79},{"data":4,"page":78,"perPage":78,"totalItems":78,"totalPages":78},[5],{"alt":6,"collectionId":7,"collectionName":8,"content":9,"cover_image":10,"cover_image_path":11,"created":12,"created_by":13,"expand":14,"id":72,"keywords":73,"locale":49,"publish_at":74,"scheduled_at":13,"school_blog":70,"short_description":75,"slug":76,"status":68,"title":6,"updated":77,"updated_by":13,"views":71},"JS2GO EP.22 การทำงานกับ JSON — JavaScript กับ Go ต่างกันอย่างไร?","sclblg987654321","school_blog_translations","\u003Cp>JSON (JavaScript Object Notation) เป็นรูปแบบข้อมูลที่นิยมใช้สำหรับการแลกเปลี่ยนข้อมูลระหว่างระบบ โดยเฉพาะใน API และ Web Services การจัดการ JSON อย่างถูกต้องช่วยให้ข้อมูลถูกต้อง ป้องกัน runtime error และทำให้ระบบทำงานได้อย่างราบรื่น ในบทความนี้เราจะเปรียบเทียบการ อ่าน (Parse), เขียน (Serialize) และ แปลง JSON ใน JavaScript (Node.js) และ Go พร้อมตัวอย่างโค้ดและแนวทางปฏิบัติที่เหมาะสม\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>การจัดการ JSON ใน JavaScript\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>JavaScript มี Object Built-in JSON สำหรับการ parse และ stringify ข้อมูล JSON\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Parsing JSON (String → Object)\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">const jsonString = '{\"name\": \"Boom\", \"age\": 28}';\ntry {\n  const obj = JSON.parse(jsonString);\n  console.log(obj.name); \u002F\u002F Boom\n  console.log(obj.age);  \u002F\u002F 28\n} catch (err) {\n  console.error('Error parsing JSON:', err);\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Serializing Object → JSON String\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-javascript\">const user = { name: 'Boom', age: 28 };\nconst jsonStr = JSON.stringify(user);\nconsole.log(jsonStr); \u002F\u002F {\"name\":\"Boom\",\"age\":28}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ข้อดีของ JavaScript\u003C\u002Fh3>\u003Cul>\u003Cli>JSON built-in ใช้งานง่าย\u003C\u002Fli>\u003Cli>Dynamic typing ทำให้แก้ไข object ได้ทันที\u003C\u002Fli>\u003Cli>Async\u002Fawait + fetch ทำงานกับ API JSON ได้สะดวก\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ข้อจำกัด\u003C\u002Fh3>\u003Cul>\u003Cli>ไม่มี type checking หาก JSON ผิดรูปแบบอาจเกิด runtime error\u003C\u002Fli>\u003Cli>ต้อง handle error ด้วย try\u002Fcatch\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>การจัดการ JSON ใน Go\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>Go มี package \u003Ccode inline=\"\">encoding\u002Fjson\u003C\u002Fcode> สำหรับจัดการ JSON\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Parsing JSON (String → Struct)\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">package main\n\nimport (\n    \"encoding\u002Fjson\"\n    \"fmt\"\n    \"log\"\n)\n\ntype User struct {\n    Name string `json:\"name\"`\n    Age  int    `json:\"age\"`\n}\n\nfunc main() {\n    jsonString := `{\"name\": \"Boom\", \"age\": 28}`\n    var user User\n    err := json.Unmarshal([]byte(jsonString), &amp;user)\n    if err != nil {\n        log.Fatal(err)\n    }\n    fmt.Println(user.Name) \u002F\u002F Boom\n    fmt.Println(user.Age)  \u002F\u002F 28\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>Serializing Struct → JSON String\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-plaintext language-go\">user := User{Name: \"Boom\", Age: 28}\njsonData, err := json.Marshal(user)\nif err != nil {\n    log.Fatal(err)\n}\nfmt.Println(string(jsonData)) \u002F\u002F {\"name\":\"Boom\",\"age\":28}\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ข้อดีของ Go\u003C\u002Fh3>\u003Cul>\u003Cli>Type-safe ตรวจสอบ field และ type ขณะ compile\u003C\u002Fli>\u003Cli>รองรับ struct tags สำหรับ mapping JSON key\u003C\u002Fli>\u003Cli>Error handling ชัดเจน\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>ข้อจำกัด\u003C\u002Fh3>\u003Cul>\u003Cli>Syntax verbose สำหรับงานง่าย ๆ\u003C\u002Fli>\u003Cli>ต้องกำหนด struct ให้ตรงกับ JSON structure\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>แนวทางปฏิบัติที่เหมาะสม\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Col>\u003Cli>ตรวจสอบ error ทุกครั้ง\u003Cul>\u003Cli>JavaScript: ใช้ \u003Ccode inline=\"\">try\u002Fcatch\u003C\u002Fcode>\u003C\u002Fli>\u003Cli>Go: ตรวจสอบ \u003Ccode inline=\"\">err\u003C\u002Fcode> หลังการ marshal\u002Funmarshal\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fli>\u003Cli>เลือก data structure ให้เหมาะสม\u003Cul>\u003Cli>Go: ใช้ \u003Ccode inline=\"\">struct\u003C\u002Fcode> สำหรับ JSON ที่คาดเดา structure ได้\u003C\u002Fli>\u003Cli>JavaScript: ใช้ object หรือ type annotation (TypeScript)\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fli>\u003Cli>จัดการค่า field ที่อาจไม่มีค่า\u003Cul>\u003Cli>Go: ใช้ pointer หรือ \u003Ccode inline=\"\">omitempty\u003C\u002Fcode> tag\u003C\u002Fli>\u003Cli>JavaScript: เช็คค่า \u003Ccode inline=\"\">undefined\u003C\u002Fcode> ก่อนใช้งาน\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fli>\u003Cli>แปลงและ serialize อย่างปลอดภัย\u003Cul>\u003Cli>JavaScript: หลีกเลี่ยง \u003Ccode inline=\"\">JSON.stringify\u003C\u002Fcode> กับ circular reference\u003C\u002Fli>\u003Cli>Go: ใช้ \u003Ccode inline=\"\">json.Decoder\u003C\u002Fcode> สำหรับ streaming JSON ขนาดใหญ่\u003C\u002Fli>\u003C\u002Ful>\u003C\u002Fli>\u003C\u002Fol>\u003Cp>&nbsp;\u003C\u002Fp>\u003Chr>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>สรุปเปรียบเทียบ JSON JavaScript vs Go\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cfigure class=\"table\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Feature\u003C\u002Fth>\u003Cth>JavaScript\u003C\u002Fth>\u003Cth>Go\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Parsing\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">JSON.parse\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">json.Unmarshal\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Serialization\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">JSON.stringify\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">json.Marshal\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Type checking\u003C\u002Ftd>\u003Ctd>Dynamic\u003C\u002Ftd>\u003Ctd>Static (struct)\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Error handling\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">try\u002Fcatch\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>return error\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Optional fields\u003C\u002Ftd>\u003Ctd>\u003Ccode inline=\"\">undefined\u003C\u002Fcode> \u002F \u003Ccode inline=\"\">delete\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>pointer + \u003Ccode inline=\"\">omitempty\u003C\u002Fcode>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>คำแนะนำ\u003C\u002Fh3>\u003Cul>\u003Cli>สำหรับ rapid prototyping หรือ front-end ใช้ JavaScript จะสะดวก\u003C\u002Fli>\u003Cli>สำหรับ backend service \u002F API \u002F data validation ใช้ Go จะมั่นใจและ type-safe\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>ตอนต่อไป\u003C\u002Fh2>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>ใน EP.23 ของซีรีส์ JS2GO เราจะพาคุณไปเรียนรู้ การทำงานกับ Date และ Time ใน JavaScript และ Go พร้อมตัวอย่างโค้ดและแนวทางปฏิบัติที่เหมาะสม เพื่อจัดการเวลาในระบบให้ถูกต้องและแม่นยำ\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Cp>\u003Cstrong>อ่านบทความ Series อื่นๆ\u003C\u002Fstrong>\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FGolang\">\u003Cstrong>Golang The Series\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FJS2GO\">\u003Cstrong>JS2GO\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FTailwind%20CSS\">\u003Cstrong>10 Ep ที่จะให้คุณเป็นมือโปร Tailwind CSS ในชั่วข้ามคืน\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cstrong>🔵 Facebook: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.academy.th\">\u003Cstrong>https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.academy.th\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🔴 YouTube : \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUC2eI2RxcA2zbTqZyHyWIfRg\">\u003Cstrong>Superdev Academy\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>📸 Instagram: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.instagram.com\u002Fsuperdevschool\u002F\">\u003Cstrong>Superdev Academy\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🎬 TikTok: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\">\u003Cstrong>https:\u002F\u002Fwww.tiktok.com\u002F@superdevacademy?lang=th-TH\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🌐 Website: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdevacademy.com\u002F\">\u003Cstrong>https:\u002F\u002Fwww.superdevacademy.com\u002F\u003C\u002Fstrong>\u003C\u002Fa>\u003Cstrong>&nbsp;\u003C\u002Fstrong>\u003C\u002Fp>","43_11zon_mgamcyrsjc.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fz9r73asq5pmuwfu\u002F43_11zon_mgamcyrsjc.webp","2026-03-04 08:46:24.920Z","",{"keywords":15,"locale":43,"school_blog":53},[16,23,28,33,38],{"collectionId":17,"collectionName":18,"created":19,"created_by":13,"id":20,"name":21,"updated":22,"updated_by":13},"sclkey987654321","school_keywords","2026-03-04 08:45:30.765Z","nayuhpre9emd5xw","JS2GO","2026-04-10 16:12:59.160Z",{"collectionId":17,"collectionName":18,"created":24,"created_by":13,"id":25,"name":26,"updated":27,"updated_by":13},"2026-03-04 08:46:24.109Z","o8xfgwdh6k03hxd","JSON","2026-04-10 16:13:13.679Z",{"collectionId":17,"collectionName":18,"created":29,"created_by":13,"id":30,"name":31,"updated":32,"updated_by":13},"2026-03-04 08:20:42.484Z","vslzz9nvv6n77cx","JavaScript","2026-04-10 16:07:28.339Z",{"collectionId":17,"collectionName":18,"created":34,"created_by":13,"id":35,"name":36,"updated":37,"updated_by":13},"2026-03-04 08:20:11.547Z","ey3puyme01a9bsw","Go","2026-04-10 16:07:25.893Z",{"collectionId":17,"collectionName":18,"created":39,"created_by":13,"id":40,"name":41,"updated":42,"updated_by":13},"2026-03-04 08:46:24.442Z","xhiyszaqiryu314","การจัดการ JSON","2026-04-10 16:13:13.748Z",{"code":44,"collectionId":45,"collectionName":46,"created":47,"flag":48,"id":49,"is_default":50,"label":51,"updated":52},"th","pbc_1989393366","locales","2026-01-22 10:59:55.832Z","twemoji:flag-thailand","s8wri3bt4vgg2ji",true,"Thai","2026-04-10 15:42:46.614Z",{"category":54,"collectionId":55,"collectionName":56,"expand":57,"id":70,"views":71},"hsa1afr8fcnd6qb","pbc_2105096300","school_blogs",{"category":58},{"blogIds":59,"collectionId":60,"collectionName":61,"created":62,"created_by":13,"id":54,"image":63,"image_alt":13,"image_path":64,"label":65,"name":21,"priority":66,"publish_at":67,"scheduled_at":13,"status":68,"updated":69,"updated_by":13},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:24:37.986Z","js2_go_2_11zon_y6paxmuz32.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fhsa1afr8fcnd6qb\u002Fjs2_go_2_11zon_y6paxmuz32.webp",{"en":21,"th":21},10,"2025-08-11 03:41:08.820Z","published","2026-04-10 16:08:23.388Z","zm6a6smh1in3rsc",211,"z9r73asq5pmuwfu",[20,25,30,35,40],"2025-09-23 01:41:13.575Z","เรียนรู้การอ่าน เขียน และแปลง JSON ใน JavaScript และ Go พร้อมตัวอย่างโค้ดและแนวทางปฏิบัติที่เหมาะสม เพื่อให้คุณจัดการข้อมูล JSON ได้อย่างมืออาชีพ","js2go-ep22-json-javascript-vs-go","2026-04-12 18:17:11.642Z",1,{"th":76}]