November 20, 2011

JSON บน iOS 5

ปัจจุบันเราคงปฏิเสธไม่ได้ว่าเราใช้ JSON กันบ่อยขึ้น และในวงกว้างขึ้นเรื่อยๆ
เดิมหากจะทำอะไรกับ JSON เราก็จะมักจะต้องพึ่งพา third party library อยู่เสมอ แต่เมื่อมาถึงยุคของ iOS 5  Apple ก็ได้เพิ่ม JSON library เข้ามาให้เราพร้อมใช้ได้ง่ายๆ แล้ว

ทำให้เราสามารถแปลง Object อย่าง NSString, NSNumber, NSArray หรือ NSDictionary ให้กลายเป็น JSON ได้ง่ายๆ โดยไม่จำเป็นต้องพึ่งพา third party library อีกต่อไป

พระเอกของงานนี้ก็คือ NSJSONSerialization  เราจะใช้มันช่วยในการแปลง Object ให้กลายเป็น JSON และแปลงจาก JSON กลับมาเป็น Object ได้ ดังนี้


แปลง JSON Data ให้กลายเป็น Object

    // สมมติว่าเราได้รับ data มาจากอินเทอร์เน็ต
    NSData* data = [NSData dataWithContentsOfURL: [NSURL URLWithString: urlString]];

    // แปลงเป็น Object ด้วยพระเอกของเรา
    NSDictionary* json = [NSJSONSerialization JSONObjectWithData: data
                                                     optionskNilOptions 
                                                       error: &error];


สำหรับ options ของการแปลง JSON ให้กลายเป็น Object นั้น จะเกี่ยวกับเรื่องการความต้องการให้สิ่งที่แปลงออกมามีลักษณะเป็นอย่างไรในลักษณะของ Mutable หรือ Immutable  และอยากจะให้ top level object แยกกันเป็น array หรือ dictionary หรือไม่ อ่านรายละเอียด options ได้ที่นี่


แปลง Object เป็น JSON Data

    // เริ่มจากเรามี Object ที่ต้องการแปลงเป็น JSON
    NSDictionary* objectInfo = ...

    // แปลงเป็น JSON ด้วยพระเอกของเรา
    NSData* jsonData = [NSJSONSerialization dataWithJSONObject: objectInfo 
                                 optionsNSJSONWritingPrettyPrinted
                                   error: &error];

    // ลองดูหน้าตาของ JSON ที่เราแปลงได้
    NSString *jsonString = [[NSString allocinitWithData:jsonData
                                             encoding:NSUTF8StringEncoding];



กรณีนี้ถ้าหากเราต้องการส่งข้อมูลไปที่อื่นๆ เช่นส่งไปยัง server เราสามารถกำหนด option เป็น kNilOptions ได้ เพื่อตัดอักขระส่วนที่ไม่จำเป็นออกไป แต่ที่เรากำหนด options เป็น NSJSONWritingPrettyPrinted ก็เพื่อให้เราสามารถอ่านได้ง่ายนั่นเอง

เพียงเท่านี้เราก็สามารถทำงานร่วมกับ JSON ได้อย่างมีความสุขแล้ว

November 11, 2011

พักผ่อนที่ The Living Hill Resort

เคยไปพักผ่อนมาหลายๆ ที่ แต่ที่ The Living Hill Resort นี่ต้องเขียนถึงสักหน่อย เนื่องจากเป็นรีสอร์ทที่มีประวัติโชกโชนอยู่ในเว็บไซต์ชื่อดังหลายเว็บ ลองหาดูจะพบว่าชื่อเสียงในทางลบจะค่อนข้างเยอะนิดนึง ชวนให้คนไม่กล้าไปพักกันสักเท่าไหร่

คำชม
  • พนักงานพูดจาดีมาก บริการก็ดีมากเลย ดูเป็นกันเองคอยช่วยเหลือนู่นนี่ โทรมาถามไถ่เป็นห่วงว่าเราจะหารีสอร์ทไม่เจอด้วยล่ะ (แหงล่ะ ทางไปซับซ้อนมาก)
  • เงียบสงบ ที่พักคนน้อยดี (อาจเพราะไปวันที่คนน้อย) มีที่นั่งชิลๆ ตากลมเย็นๆ สบายดีจัง มีดาดฟ้าให้นอนดูดาวตอนกลางคืนด้วยถ้าโชคดีไปวันที่ฟ้าเปิด
  • ที่พักอยู่บนยอดเนินเขาสูง มองไปเห็นวิวรอบๆ ตัวเป็นแนวเขายาวล้อมรอบ มีลมพัดเย็นตลอด
  • ไม่ได้แย่อย่างที่ในเว็บส่วนใหญ่ที่หาเจอบ่นๆ กัน
  • ถ้าไม่มีดีลคงไม่ไป ห้องแพงเกิน แต่ถ้า 2 พันเหมือนเดิมมีโอกาสอาจไปพักอีกสัก 2-3 วัน
  • สัญญาณ truemove ชัดเจนใช้ได้ ทำให้ผมมี Google Map นำทางไปจนถึงจนได้ ไม่งั้นหลงชัวร์
  • ระหว่างทางแวะกินสเต๊กและไอติมอร่อยๆ ที่ร้าน Dairy Home
  • รูป

คำติ:
  • โทรศัพท์ติดต่อรีสอร์ทติดยากมาก (ดังคนเขาว่า) ถ้าเทียบกับรีสอร์ทที่อื่นๆ ที่เคยไปพัก
  • ตอนเช้างง ไม่รู้ว่าอาหารเช้าไปเอาตรงไหน ที่ไหนได้เดินลงมาแล้วจะมีพนักงานมาถามว่าห้องไหน แล้วจะมีคนเอามาเสริฟให้เลยถึงที่
  • แผนที่ในเว็บ thelivinghill.com การเดินทางไปไม่ชัดเจน เขียนแค่นั้นใครจะเดินทางไปถูก -_-" หลงได้ง่ายๆ เลย เส้นทางก็วกวนซับซ้อน ผมโชคดีที่คนรู้จักไปพักมาก่อน แล้วบันทึก location ไว้เลยเปิด Google Map ตามไปได้ไม่ยาก (ลองเทียบแผนที่จากในเว็บ กับแผนที่ใน Google Map ดูสิ ว่ามันช่างต่างกันมากเหลือเกิน)
  • หาที่นี่ไม่เจอใน Google Map



View Larger Map แผนที่ The Living Hill Resort จากแยกบางพลัด กรุงเทพ ไปถึงทางเข้า The Living Hill Resort


แสดงตำแหน่ง วิธีการเดินทางไป และสถานที่ตั้งของ The Living Hill Resort
ถึงจุด B แล้วให้เลี้ยวขวาไปครับ จะเป็นทางดิน ขึ้นเนินชันมาก