这是我在vba中调用vba的代码,在有一个JSON对象的情况下,当需要"{"或"["时,我将接收与最新Json-vba library 2.2.3相关的error 10001。
Sub jsontest()
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
'http.Open "GET", "https://bin.codingislove.com/document/ayequrimiy", False
http.Open "GET", "https://bin.codingislove.com/ayequrimiy.json", False
http.send
MsgBox (ParseJson(http.responseText)("Count"))
End Sub第二个.json文件显示了10001 error,但是第一个文件,文本形式相同的文件,正在完美地执行。在调用json字符串时,我也尝试了包括括号,但没有成功。
在我的解析器调用中应该纠正什么?
发布于 2018-01-30 18:30:01
使用开发人员工具调用第二个url https://bin.codingislove.com/ukiyerovow.json,可以看到json是从url https://bin.codingislove.com/documents/ukiyerovow返回的,如下所示:
{
"data":
"{
\"Count\":1,
\"results\":
[
{
\"showEmailIcon\":true,
\"showIcon\":true,
\"middleName\":\"\",
\"dateActivated\":1513000,
\"regAffiliateRebate\":\"No Rebate(0)\",
\"Id\":1,
\"dateLastLogin\":1513248842000,
\"countryName\":\"France\",
\"address\":null,
\"name\":\"cien\",
\"id\":1786511,
\"state\":null
}
],
\"resultClass\":\"com.zoho.dao.dto\"
}",
"key":"ayequrimiy"
}使用Json-vba library,可以这样解析这个条带。HTH
Sub jsontest()
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
' use this url instaed:
Const url As String = "https://bin.codingislove.com/documents/ayequrimiy"
http.Open "GET", url, False
http.send
Dim parsedJson As Dictionary
Set parsedJson = JsonConverter.ParseJson(http.responseText)
Dim data As String
data = parsedJson("data")
Dim parsedData As Dictionary
Set parsedData = ParseJson(data)
MsgBox parsedData("Count")
End Sub在我的解析器调用中应该纠正什么?
https://bin.codingislove.com/documents/ayequrimiy。这里有json数据。比较:
要获得例如
Name,您必须使用包含数组的results,因此首先使用索引(例如(1))指向数组的元素,然后取元素("Name"):
Debug.Print parsedData("reports")(1)("Name")发布于 2018-01-30 16:13:56
因为这不是JSON响应,所以在解析它之前,您必须将它变成JSON响应。最简单的方法是加载页面的DOM,然后提取文本。
在SO (here's one)上有很多代码片段可以做到这一点。一旦您有了DOM,就可以这样做:
json = doc.getElementById("box").innerTexthttps://stackoverflow.com/questions/48521809
复制相似问题