vba 解析JSON/XML总结笔记,以GoogleMap/OpenstreetMap-Nominatim为例

这篇博客详细记录了使用VBA进行JSON和XML解析的过程,以GoogleMap和OpenstreetMap-Nominatim API为例,探讨了在业务场景中如何发送请求并解析数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

业务中用到vba解析json/xml,这里进行总结笔记。

1.发送请求function

Public Function sendReq(ByRef URL As String) As String
On Error GoTo err6
    Dim HttpReq         As MSXML2.XMLHTTP60
    Dim ResponseStr     As String
    'XMLHTTPオブジェクトをセット
    Set HttpReq = New MSXML2.XMLHTTP60
    With HttpReq
        .Open "GET", URL, varAsync:=False           '非同期モードで通信を開始
        .send                                       'リクエストを送信
        If .Status <> 200 Then Exit Function        'リクエストが成功しなかったら終了
    End With
     ResponseStr = HttpReq.responseText
     sendReq = ResponseStr
     Set HttpReq = Nothing
    Exit Function
err6:
      Set HttpReq = Nothing
      MsgBox message_box("ERROR_204")
      End
End Function
2.解析Json
Function GoogleMap(ByVal adress As String) As String
'GoogleMaps API json形式でジオコードを取得
'戻り値:緯度(glat),経度(glng),ステータスをカンマ区切り
    Dim URL As String
    Dim objJSON         As Object
    Dim strGeocode      As String

    'Google Maps Geocoding API
    URL = "https://maps.googleapis.com/maps/api/geocode/json?address=" & UrlEncodeUtf8(adress)
    jsonText = sendReq(URL)
  
    Dim gStatus         As String
    Dim glat            As String
    Dim glng            As String
    Dim glocation_type  As String
    Dim gGeometry       As Object
    Dim gLocation       As Object 
    Dim gItem           As Variant
    Dim gCount          As Long
   Set js = CreateObject("ScriptControl")
   js.Language = "JavaScript"
    
   'jsonにパースする関数を追加
   js.AddCode "function jsonParse(s) { return eval('(' + s + ')'); }"
   '追加した関数を実行して、結果を変数に格納する
   Set objJSON = js.CodeObject.jsonParse(jsonText)
    'ステータス コード(status)を取得する
    gStatus =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值