将JSON Feed自动解析为MS Access

前端之家收集整理的这篇文章主要介绍了将JSON Feed自动解析为MS Access前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的公司有一个供应商提供 JSON数据源,我需要每两个小时加载到我们的MS Access数据库中.我需要:

>从Feed中加载数据,
>将JSON解析为Access的可用格式,然后
>将其插入数据库.

我遇到了this question讨论类似的问题,但是没有很好的描述如何在MS Access中实现它.任何帮助感激不尽!

解决方法

使用 VBA JSON库,您当然可以将JSON格式的文件导入MS Access.我们的想法是将JSON数据视为字典集合,Visual Basic将 collectiondictionary作为数据结构提供.

以下是步骤:

>构建一个表以匹配预期的JSON数据的结构
>在MS Access的VBA IDE端,将JsonConverter.bas(从上面的链接)导入新模块
>仍在IDE中的“工具/参考”下,选中“VBA参考:Microsoft脚本运行时”
>包括以下读取JSON文本文件代码,将其解析为字典集合(带有键和valeus),并将值迭代地附加到Access表中.将代码放在Access表单或模块后面(示例使用一个嵌套级别的JSON文件)

JSON

[
  {
    "col1": somenumber,"col2": "somestring","col3": "somestring","col4": "somestring","col5": "somestring"
  }
]

VBA代码

Private Function JSONImport()
    Dim db As Database,qdef As Querydef
    Dim FileNum As Integer
    Dim DataLine As String,jsonStr As String,strsql As String
    Dim p As Object,element As Variant        

    Set db = CurrentDb

    ' READ FROM EXTERNAL FILE
    FileNum = FreeFile()
    Open "C:\Path\To\JsonFile.json" For Input As #FileNum

    ' PARSE FILE STRING
    jsonStr = ""
    While Not EOF(FileNum)
        Line Input #FileNum,DataLine

        jsonStr = jsonStr & DataLine & vbNewLine
    Wend
    Close #FileNum
    Set p = ParseJson(jsonStr)

    ' ITERATE THROUGH DATA ROWS,APPENDING TO TABLE
    For Each element In p
        strsql = "PARAMETERS [col1] Long,[col2] Text(255),[col3] Text(255)," _
                          & "[col4] Text(255),[col5] Text(255); " _
                  & "INSERT INTO TableName (col1,col2,col3,col4,col5) " _
                          & "VALUES([col1],[col2],[col3],[col4],[col5]);"

        Set qdef = db.CreateQueryDef("",strsql)

        qdef!col1 = element("col1")
        qdef!col2 = element("col2")
        qdef!col3 = element("col3")
        qdef!col4 = element("col4")
        qdef!col5 = element("col5")

        qdef.Execute
    Next element

    Set element = Nothing
    Set p = Nothing
End Function

猜你在找的JavaScript相关文章