iT邦幫忙

2019 iT 邦幫忙鐵人賽

1
自我挑戰組

程式設計師大冒險系列 第 66

[66/150]CPE一星題庫(ㄧ)將資料整理成JSON格式

寫程式將資料轉換成JSON格式資訊,內文附程式碼。難在於使用保留字",不過透過chr使用ASCII來解決問題。實際寫過對於學習JSON很有幫助,畢竟寫錯就運作不了。

【大綱】

  • 時間分配
  • 轉換JSON格式
    • 說明
    • 程式碼
  • 檢討與修正
  • 總結

【時間分配】

項目 時間
鐵人發文 0 hr 38 min
離散數學 0 hr 30 min
題庫整理 1 hr 36 min

【轉換JSON格式】

起初規劃寫在儲存格,後來想到DEBUG.PRINT

【說明】

參考:vba使用保留字(會連到外部網站)
VBA 用不了+=,有點可惜。
遇到保留字",下意識想用反斜線,系統不給過。
起初以為搞錯斜線方向,後來才知道VBA不能這樣使用。
Chr(34)代替"就能使用,不過單看Chr(34)很難想到",還是反斜線用法比較直觀。

【程式碼】

小地方需要修正

Sub all()
    '宣告
        Dim quetri As Variant
        Dim json As String
        'quetri是全部name值
        quetri = Array("name", "number", "ifsolve")
        
        'Chr(34) = ",因為"是保留字,所以要用Chr(34) 代替
        For Each ci In Range("B2", "D8")
            
            If (ci.Column() = 2) Then
                json = json + "{"
            End If
            
            json = json & Chr(34) + quetri(ci.Column() - 2) & Chr(34) & ":"
            json = json & Chr(34) & ci.Value & Chr(34)
            
            If (ci.Column() = 4) Then
                json = json + "}"
            End If
            
            json = json + ","
        Next ci
        
        '除錯用
            Debug.Print (json)
    
End Sub

https://ithelp.ithome.com.tw/upload/images/20181205/20091910sUIuWIGcBv.jpg

【檢討與修正】

這個題庫整合專案有點慢,應該再多花一些時間。
接下來找到分心原因,試著去解決它。

【總結】

資料整理的差不多,接著嘗試用AJAX技術刷新區塊。
點擊資料後會連接到題目內容,並且解說解題思路。
錯誤地方歡迎提出,感謝撥冗閱讀。

新增

2019/06/08轉換JSON格式改良版
看到這個問答想到以前有寫過「轉換JSON格式」。
本來想複製貼上,不過回頭來看有點慘不忍睹,索性大改一番。


上一篇
[65/150]學習閒談
下一篇
[67/150]CPE一星題庫(二)將Script從HTML分離出來
系列文
程式設計師大冒險115
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言