發表文章

目前顯示的是 10月, 2016的文章

零售業店員結帳的發展可能

前陣子某一天在全聯排隊結帳,前面結帳的客人花了很多時間的時候突然想到,以後零售業的「結帳」動作會變成什麼樣子? 仔細想一想,結帳的動作其實重複性也很高,而且這個動作的目的是店家需要知道客人們買了哪些東西,再計算總共是多少金額,以後應該也會往自動化的方向發展吧...如果是在虛擬實境中模仿實體商店購物行為的話,或許可以做到在「顧客從駕上拿取商品時,就自動記錄購物車內商品的總金額」,最後逛完商店後,就自動從這位顧客的電子錢包中扣款,這樣一來,人們在挑選完商品後,就可以直接走出店外回家了。 可是在實體商店中,要做到「自動偵測顧客購物車中有哪些商品」,有哪些可能性呢? 或許可以分兩個方向來思考,一個方向是在顧客逛完要走出商店前「偵測購物車中所有商品」,一個方向是在顧客「拿取商品」的時候做偵測。 要用什麼方法才能自動偵測一堆東西呢?一開始想到的可能是ETC或eTag,用紅外線或微波偵測通過一定區域內的晶片,或是將所有商品連接無線網路。可是要在每個可拋棄的商品上都裝上晶片總覺得既浪費又不實際。 像服飾店在每件商品上裝上感應磁扣,顧客在逛完後要離開前,要將所有商品的磁扣放到一個感應台上,磁扣就會自動打開,系統則是在此同時記錄對應商品的價格,這樣似乎也是個方法,不過如果商品數量很多的話,似乎又有點麻煩,還不如原本由店員來操作掃條碼。 參考機場安檢的X光機可能是個比較好的方法。選購完畢後,由顧客將所有商品放到一個滾動的履帶平台上,然後購物車先由店家收回,履帶平台將所有商品送進一個箱型感應器後,螢幕上顯示出所有商品數量及總金額,顧客完成付款後再將所有商品從另一端送出,顧客再拿另一台購物車將商品帶走。這樣應該會是一個比較簡單的模式,不過問題還是一樣,如何才能從可能堆在一起、條碼方向未知的商品中掃到所有條碼呢?全方位攝影?機械手臂將商品一個個拿起來,判斷形狀後把條碼對準條碼機? 不過在我的想像中,還是掃瞄儀器(X光機?)能夠偵測出所有堆疊在一起的商品比較有未來感,最終的目標應該還是能夠讓「結帳」這個動作讓顧客完全注意不到吧。 往另外一個方向來思考,在「拿取商品」的時候偵測動作,可能會變成類似自動販賣機的模式。 或許可以在走進商店以後,需要先領取一個感應卡。走到商品置物架前想要拿商品的時候,要先用卡片感應一下,置物架才會把商品吐出來給你,同時也可以記錄這張卡...

[C#] read json file with unknown properties notes

最近要開發一個程式,目標是要可以存取格式未知的json格式dat檔案,檔案內的json字串有可能是物件包物件/字串/數字/陣列,裡面也有可能再包物件陣列, 要把裡面的屬性和變數值都讀出來,要讓使用者可以看、修改,所以打算把資料讀出來後,輸出到視窗應用程式的表格上,使用者也可以在表格上修改屬性的值,按下儲存後,需要再將修改過後的資料輸出存回到dat檔案裡。 一開始先讀取檔案中的json字串,這裡沒有遇到什麼問題, 接下來要用jsonconvert的時候就開始困擾了,以前都是先建好物件的格式,但是現在的json物件根本不知道裡面有什麼屬性, 聽說可以用dynamic格式來承接jsonconvert轉出的物件, 轉出後的物件可以直接用 . 加上屬性來取得數值,可現在屬性的名字也是未知的,就得找其他方法了。 又是一陣google搜尋,找到一個作法是用Dictionary<string, object>來轉出json物件,這樣就可以取出屬性及數值了。 這樣子就可以拿到目標的屬性和數值了。 因為目標物件中的屬性數量也是未知的,所以用foreach(var value in values),再用.Key和.Value把屬性名稱和數值取出來。 接下來,因為第一次jsonconvert取出的Value類型也是未知的,要使用.GetType()來讀出變數類型,再進入switch分別執行不同的動作。 如果是string/int的話,就可以直接輸出給使用者,如果是陣列,就要再判斷一次陣列中的包的是字串/數字/物件,如果是物件,就可以用遞迴再將物件丟回函式。