close

近期在開發內部前端人員要使用的API文件小工具(?),就是一個可以把後端工程師完成的API contract轉成前端工程師一眼就可以看得很清楚,且格式統一的頁面。
但在這個頁面中,我這裡有設定了兩種將contract上傳入的方式,一個是file input,一個是textarea。在file input的onChange event和textarea的keyup event要做一個檢查輸入的內文是否為正確的格式的動作,且這裡使用的檢核套件是swagger-parser的validate,所以還必須將我從input接收到的檔案或字串轉乘object(套件規定只能傳入object,若傳入string會被當成要檢查URL)。但是這個時候就發現一個問題,若在textarea的方式中,輸入任意的string,想要將string透過JSON.parse()轉換成object之前,必須確保輸入的字串是JSON String,因為JSON.parse()只接收JSON string,就需要先透過JSON.stringfy()轉換。但若後端人員直接複製貼上他們的API contract,因為已經是JSON String,硬是要把它用JSON.stringfy()再次轉換,就會變成跑出一堆奇怪的符號,也就會導致swagger-parser的validate檢查不過。所以這個時候就必須還要在最前面加入一個檢查,就是檢查輸入的文字是否為JSON string。


確認輸入的文字是否為JSON string
實作情境
在拿到textarea的文字後,為確保在JSON.parse()這個動作執行前,拿到的string是JSON string,需確認現在拿到的string是否為JSON string。

實作方式
利用JSON.parse()無法接受JSON string以外的東西的特性,來檢查是否為JSON string。
carbon (16)


這樣就可以檢查輸入的文字是否是JSON string

貼心小提醒!!
因為是亂亂寫筆記,真的就是純紀錄之前實作時,如何解決曾經卡住過的問題,所以主要都是解決問題的方式為主,不會有太多詳細說明。

arrow
arrow
    文章標籤
    JavaScript JSON string 筆記
    全站熱搜
    創作者介紹
    創作者 文科少女寫程式 的頭像
    文科少女寫程式

    文科少女學程式

    文科少女寫程式 發表在 痞客邦 留言(0) 人氣()