มาดูป้ายจราจรอัจฉริยะทั่วกรุงเทพและลองใช้ API ดึงข้อมูลกันดีกว่า

มาดูป้ายจราจรอัจฉริยะทั่วกรุงเทพและลองใช้ API ดึงข้อมูลกันดีกว่า

วันนี้ขี้เกียจอธิบายครับ ดูภาพน่าจะเข้าใจเลย source code อยู่ด้านล่างครับ

Read More

[Google Maps Geocoding] ลอง Parse Json ด้วย Groovy + Java (Netbeans)

[Google Maps Geocoding] ลอง Parse Json ด้วย Groovy + Java (Netbeans)

โปรเจ็คตลกๆมาอีกแล้ว  เพราะโปรเจ็คนี้ผมใช้  Json Lib + Groovy + Java

แต่ผมใช้ Groovy ดึง json (URL.text) แล้วใช้ Java เป็นตัวแกะ jsonObject เป็น jsonArray

หลังจากนั้นเอาข้อมูลโยนกลับไปให้ Groovy ถอดเอาเฉพาะส่วนที่ต้องการออกมา (ในที่นี้คือ coordinates — latitude ,longitude นั่นแหละ)

ดูวุ่นวายมาก ทั้งๆที่ เขียน Groovy อย่างเดียวก็ได้ เพราะ Json Lib ก็ลองรับ groovy  หรือจะเขียน Java เพียวๆ เลยก็ได้ 

 

เรื่องของเรื่องคืออยากเขียน Java ร่วมกับ Groovy อีกครั้ง เพราะไม่ค่อยถูกกับ Java จริงๆ

มันดูเวื่นเว้อ  มันเขียนเวิ่นเว้อด้วย ยาวๆ งงๆ (อาจเป็นเพราะไม่ได้ศึกษาอย่างลึกซึ้ง)

groovy มันสั้น เข้าใจง่าย ไม่เวิ้นเว้อ (อาจจะใช้ได้ไม่เต็มประสิทธิภาพ แต่ผมชอบ พวก Closures )

 

เหตุผลที่ไม่เขียน Groovy เพียวๆไปเลยก็เพราะว่า 

code ตัวอย่างที่เค้ามีให้ดู มันพิมพ์ผิด 

def fromList = [1,true,'json'as JSONarray  

มันควรจะต้องเป็น JSONArray  เมื่อแก้และเอาอันอื่นมาลองดู มัน cast เป็น Type พวก net.sf.json.* ไม่ได้ อาการประมาณนี้ 

ก็เลยลองซัด Java + Groovy ไปเลย

มันก็เจอปัญหานิดหน่อยเพราะ ไม่ได้อ่าน Dependency List เลยค่อยๆตามหา พอได้ครบแล้วเพิ่งจะเห็นว่ามันมีบอกไว้ว่า 

Json-lib requires (at least) the following dependencies in your classpath:

  • jakarta commons-lang 2.4
  • jakarta commons-beanutils 1.7.0
  • jakarta commons-collections 3.2
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6

น่าเขกกะโหลกจริงๆ

Read More

ลองถอดข้อมูลจาก JSON Format ด้วย Grails

ลองถอดข้อมูลจาก JSON Format ด้วย Grails

จากตอนที่แล้ว   Reverse Geocoding (Address Lookup) ผ่าน http

เรื่องวันนี้  ! ให้สังเกตว่า

 เมื่อเรา Request ไปข้อข้อมูลของ Thammasat Rangsit เราจะได้ ข้อมูลหน้าตาประมาณนี้

{
  "name": "Thammasat Rangsit",
  "Status": {
    "code": 200,
    "request": "geocode"
  },
  "Placemark": [ {
    "id": "p1",
    "address": "Thammasat Rangsit Sport Center, Khlong Nueng, Khlong Luang, Pathum Thani 12110, Thailand",
    "AddressDetails": {
   "Accuracy" : 9,
   "AddressLine" : [ "Thammasat Rangsit Sport Center" ]
},
    "ExtendedData": {
      "LatLonBox": {
        "north": 14.0785781,
        "south": 14.0569314,
        "east": 100.6173654,
        "west": 100.5853506
      }
Read More