我從中國的AQI API獲取數據,我將一些數據放入SQL服務器數據庫,並且工作得很花哨。我還決定將從API返回的所有內容添加到JSON文件中,以便稍後訪問它。用雙引號將字符串添加到vba中的文件中
每當我嘗試添加該API返回到該文件中,我得到一個「無效的過程調用或參數」字符串錯誤
這是我迄今所做的:
Public Sub AddToJson(Jsonline As String)
Dim strfile As String
Dim fso As New FileSystemObject
Dim fsoStream As TextStream
Dim iexist As String
Dim stradd As String
strfile = "c:\JSON_AQI.json"
stradd = Replace(Jsonline, Chr(34), Chr(34) & Chr(34) & Chr(34) & Chr(34))
Debug.Print stradd
iexist = Dir(strfile)
'check if the file exists
If iexist = "" Then
'if it exists, open it and add the line
Set fsoStream = fso.CreateTextFile(strfile)
Else
'if it doesn't exist, create it and add the line
Set fsoStream = fso.OpenTextFile(strfile, ForAppending)
End If
fsoStream.WriteLine stradd
fsoStream.Close
Set fsoStream = Nothing
Set fso = Nothing
End Sub
這就是我傳的Jsonline參數:
{"status":"ok","data":{"aqi":164,"idx":7130,"attributions":[{"name":"Hunan Environmental Protection Agency (????????)"},{"name":"China National Urban air quality real-time publishing platform (??????????????)"}],"city":{"geo":[33.8561,115.7831],"name":"sanguó lanshèng gong, Bozhou"},"dominentpol":"pm25","iaqi":{"co":{"v":14.8},"no2":{"v":24.7},"o3":{"v":45.9},"pm10":{"v":97},"pm25":{"v":164},"so2":{"v":5.1}},"time":{"s":"2017-04-06 04:00:00","tz":"+08:00","v":1491451200}}}
,你可以看到我嘗試添加額外的雙引號字符串無濟於事,還有什麼我失蹤?
爲什麼你需要翻兩番報價? – omegastripes
我使用它們作爲轉義字符,如下所示:http://stackoverflow.com/questions/9024724/how-do-i-put-double-quotes-in-a-string-in-vba –
您需要轉義引號如果您只在VBA編輯器中編寫字符串常量,則採用這種方式。請注意,該答案中有雙引號,而不是四位。在你的情況下,字符串值已經保存在'Jsonline'變量中,所以不需要轉義。 – omegastripes