zhao4zhong1进来帮忙解决JSON获取object类型之二

奋斗一生的程序员 2018-01-14 10:05:15
之前,我发了这个帖子 已经解决了。
http://bbs.csdn.net/topics/392185377

现在遇到新的问题:


"attributes": {
"gender": {
"value": "Female"
},
"age": {
"value": 21
},
"headpose": {
"yaw_angle": -26.625063,
"pitch_angle": 12.921974,
"roll_angle": 22.814377
},
"smile": {
"threshold": 30.1,
"value": 2.566890001296997
}
},
"face_rectangle": {
"width": 140,
"top": 89,
"left": 104,
"height": 141
}


已知,获取left值,可以这样写:
.Eval("json.faces[0].face_rectangle['left']")

那么,如何获取attributes的age值和smile的threshold值?烦请指导。
...全文
830 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
请教
引用 3 楼 xomix 的回复:
请教
请教二位前辈,在地址栏输入下面网址: http://api.chinadatapay.com/communication/personal/1887?key=666b466c3ee008e35f5d68519d8a5186&name=songyang&idcard=220323199102023936&acc_no=6212024200001020434&mobile=13664412405 返回值为: {"code":"10000","message":"成功","data":{"state":"2"},"seqNo":"BQ624IWW1804010407"} 但是在VB6里面运行后,却提示 {"code":"SYSTEM_001","message":"找不到这个key","data":null,"seqNo":"1M3595R61803312034"} 这是怎么回事呢?我把代码帖在下面,在发本帖之前就用过这个算法(解决其它的需求),一直是成功的。

     StrData = "key=666b466c3ee008e35f5d68519d8a5186&name=songyang&idcard=220323199102023936&acc_no=6212024200001020434&mobile=13664412405"
     Dim strFaceJSON As String
     strFaceJSON = PostData("http://api.chinadatapay.com/communication/personal/1887", StrData, ResponseText)
 
     Dim JSON As Object
     Set JSON = CreateObject("MSScriptControl.ScriptControl")
     With JSON
        .Language = "javascript"
        .AddCode "var json = " & strFaceJSON & ";"

        txt1 = .Eval("json.code")      '返回 SYSTEM_001
        txt2 = .Eval("json.message")   '返回 找不到这个key,而且 data 是空的
        txt3 = .Eval("json.seqNo")
     End With

    
Private Function PostData(ByVal strURL As String, ByVal StrData As String, ByVal DataStic As DataEnum) As Variant
    On Error GoTo ERR:
    Dim XMLHTTP As Object
    Dim DataS As String
    Dim DataB() As Byte
    
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
    
    XMLHTTP.Open "POST", strURL, True
    XMLHTTP.SetRequestHeader "Content-Length", Len(PostData)
    XMLHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    XMLHTTP.sEnd strURL & StrData
    
    Do Until XMLHTTP.ReadyState = 4
      DoEvents
    Loop 
    Select Case DataStic
    Case ResponseText 
      DataS = XMLHTTP.ResponseText
      PostData = DataS
    Case ResponseBody 
      DataB = XMLHTTP.ResponseBody
      PostData = DataB
    Case ResponseBody + ResponseText 
      DataS = BytesToStr(XMLHTTP.ResponseBody)
      PostData = DataS
    Case Else 
      PostData = ""
    End Select 
    Set XMLHTTP = Nothing
    Exit Function
ERR:
    ErrMsg ERR.Description, "PostData"
    PostData = ""
End Function
  • 打赏
  • 举报
回复
用ScriptControl是不是有点资源消耗过大了。 VB-JSON 这种BSD Licensed 的第三方组件没人用吗?
赵4老师 2018-01-15
  • 打赏
  • 举报
回复
.Eval("json.faces[0].attributes.age.value") .Eval("json.faces[0].attributes.smile.threshold")

2,461

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧