[JavaScript] 將 CSV 檔案轉換成 JSON 資料

我們在拿到客戶提供的資料的時候常常會拿到 excel 檔案(這算幸福的)
至少我們可以簡單的利用一些軟體轉成 csv丟進資料庫裡處理。如果搭配個後端 API 基本上資料都不會是太大的問題可以做成 JSON 供 JavaScript 使用,但是如果在沒有後端或是資料庫的環境中呢?


首先我們先把 csv 檔案放到 server上 利用 $.get() 取得內容,接著將內容String 丟進我們待會會用到的 csvJSON 外掛 function 中。就會取得 JSON
但是這個時候的 JSON 還是 String 的形態所以還無法被解析,我們再加個 JSON.parse() 就可以拿到整個 JSON 物件摟!


function 來源:
https://gist.github.com/iwek/7154578

將多階層JOSN 轉成php 陣列的方式

這幾天剛好在研究facebook api

它們使用的方式就是用json把值回傳給我們,但是呢?大部分的API回傳值都是多階層的JSON不是單階層的

json傳回的型態是obiect所以我們需要把json decode後再將資料轉變成陣列
如果只是單一階層的json object那麼我們只需要使用php官方提供的get_object_vars()函式就可以輕鬆搞定 
但是如果是多階層的就沒有官方的函式可以用了
拜訪google大神後發現有人提供了這樣的函式


function std_class_object_to_array($stdclassobject)
{
    $_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject;

    foreach ($_array as $key => $value) {
        $value = (is_array($value) || is_object($value)) ? std_class_object_to_array($value) : $value;
        $array[$key] = $value;
    }

    return $array;
}
// print_r(std_class_object_to_array(json_decode($json_str)));
?>
在文件中先貼上這支function後,std_class_object_to_array()這隻函式就可以幫我們把多階層的object也加入陣列中瞜


是不是很方便阿!


參考資料來源:
PHP 將 Object 轉換成 Array (CLI JSON Reader) | Tsung's Blog

留言

這個網誌中的熱門文章

利用 google MAP API 取得座標之間的距離

JavaScript 將 Array 和 Object 轉成 JSON

讓 PHP 接收 post 的 json 資料