首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与JsonConverter的问题

与JsonConverter的问题
EN

Stack Overflow用户
提问于 2018-01-30 12:43:39
回答 2查看 2.3K关注 0票数 1

这是我在vba中调用vba的代码,在有一个JSON对象的情况下,当需要"{""["时,我将接收与最新Json-vba library 2.2.3相关的error 10001

代码语言:javascript
复制
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字符串时,我也尝试了包括括号,但没有成功。

在我的解析器调用中应该纠正什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-30 18:30:01

使用开发人员工具调用第二个url https://bin.codingislove.com/ukiyerovow.json,可以看到json是从url https://bin.codingislove.com/documents/ukiyerovow返回的,如下所示:

代码语言:javascript
复制
{
    "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

代码语言:javascript
复制
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

在我的解析器调用中应该纠正什么?

  • 你必须更正网址。第二个url应该是https://bin.codingislove.com/documents/ayequrimiy。这里有json数据。

比较:

要获得例如Name,您必须使用包含数组的results,因此首先使用索引(例如(1) )指向数组的元素,然后取元素("Name")

代码语言:javascript
复制
Debug.Print parsedData("reports")(1)("Name")
票数 1
EN

Stack Overflow用户

发布于 2018-01-30 16:13:56

因为这不是JSON响应,所以在解析它之前,您必须将它变成JSON响应。最简单的方法是加载页面的DOM,然后提取文本。

在SO (here's one)上有很多代码片段可以做到这一点。一旦您有了DOM,就可以这样做:

代码语言:javascript
复制
json = doc.getElementById("box").innerText
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48521809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档