อ่านข้อมูลจาก json ไฟล์

หลายครั้งที่เราต้องทำงานกับข้อมูลที่ถูก export ออกมาจาก database และข้อมูลเหล่านั้นถูกจัดออกมาให้อยู่ในรูปแบบ json ซึ่งสำหรับ go แล้วเราสามารถทำงานในลักษณะนี้ได้อย่างสะดวกรวดเร็วยกตัวอย่างเช่นเรามีข้อมูลที่เป็น json format ดังนี้

จากนั้นสิ่งที่เราต้องทำคือการเขียนโค้ด (แน่นอนอยู่แล้วถ้าไม่เขียนโค้ดมันจะทำงานได้อย่างไร) กระบวนการทำงานจะประกอบไปด้วยสองขั้นตอนคือ

  1. การเปิดไฟล์ขึ้นมาอ่านจากตำแหน่งที่เรากำหนดซึ่งเราจะใช้ฟังก์ชั่นจาก package ชื่อ “io/ioutil”
  2. การอ่าน content จาก json นั้นเราจำเป็นต้องใช้ของจาก package อื่นนั่นคือ “encoding/json”


โดยโค้ดที่ใช้สำหรับการอ่าน content มาแล้วแปลงสิ่งเหล่านั้นมาเป็น sctruct ใน go จะมีรายละเอียดดังนี้
การทำงานของโปรแกรมนี้คือเริ่มจาก

  1. การสร้าง struct ชื่อ Todo ขึ้นมาเพื่อเป็นที่เก็บข้อมูลก่อน
  2. จากนั้นทำการอ่าน content ออกมาเก็บไว้ในตัวแปรชื่อ content
  3. แล้วตรวจสอบดูว่ามี error เกิดขึ้นไหม
  4. ถ้าไม่มีเราก็เอา content ที่ได้มาทำการ unmarshall ออกมาเป็น map ของ struct ประเภท Todo

ต่อไปเราจะลองเอา service นี้เปิดให้ใช้งานได้แบบ api ผมเลยเอาไปผูกเข้ากับ go-json-rest เพื่อโดยกำหนดให้เข้าใช้งานได้จาก GET /todos ดังนั้นเราจึงต้องเปลี่ยนชื่อ method ของการอ่านไฟล์จาก main ไปเป็น ReadTodos ที่และเพิ่มการ return ให้เป็นประเภท map ของ Todo และสร้าง main function ใหม่

Posted in 101