Foxtable(狐表)用户栏目专家坐堂 → [求助]这是什么错误,为什么我电脑上没有这样的错误过,到别人电脑一直出错?“


  共有3055人关注过本帖树形打印复制链接

主题:[求助]这是什么错误,为什么我电脑上没有这样的错误过,到别人电脑一直出错?“

帅哥哟,离线,有人找我吗?
zto001
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1483 积分:10551 威望:0 精华:0 注册:2018/10/16 11:42:00
[求助]这是什么错误,为什么我电脑上没有这样的错误过,到别人电脑一直出错?“  发帖心情 Post By:2019/12/16 21:55:00 [只看该作者]

[求助]这是什么错误,为什么我电脑上没有这样的错误过,到别人电脑一直出错?“

.NET Framework 版本:4.0.30319.1022
Foxtable 版本:2019.11.3.1
错误所在事件:窗口,详情,AfterLoad
详细错误信息:
Error reading JArray from JsonReader. Path '', line 0, position 0.


这是其中一项错误的代码
Dim 错误 As String
For Each r As Row In Tables("订单详情").GetCheckedRows
    Select Case r("当前状态")
        Case "待配货"
            If r("运单编号")="" Then
                Dim 行 As Row = Functions.Execute("取单",r )
                If 行 Is Nothing Then
                    错误 ="订单号:" & r("订单编号") & "余额不足或店铺不存在/停用,打印失败!"& vbcrlf & 错误
                Else
                    Functions.Execute("打印",r , e.Form.Controls("打印机").value , e.Form.Controls("打印模板").value)
                    r("备注")= Date.Now & "[" & _姓名 & "]打印快递单"& vbcrlf & r("备注")
                    
                    If e.Form.Controls("同时发货1").Checked=True Then
                        r("当前状态")="待发货"
                        r("当前状态")="已发货"
                        r("备注")= Date.Now & "[" &  _姓名 & "]打印后发货"& vbcrlf & r("备注")
                        
                    End If
                    r.Save
                End If
            Else
                错误 ="订单号:" & r("订单编号") & "订单已打印,打印失败!"& vbcrlf & 错误
            End If
        Case Else
            错误 ="订单号:" & r("订单编号") & "非待配货订单,打印失败!"& vbcrlf & 错误
    End Select
Next
e.Form.Controls("操作信息").value=错误



这是另一项

'''
Dim 当前行 As Row = Tables("订单详情").Current
Dim 运单编号 As String =Tables("订单详情").Current("运单编号")
Dim 物流记录 As String ="【" & Tables("订单详情").Current("快递公司")& "】:" & 运单编号
Dim kddm As String = Tables("订单详情").Current("快递公司")


If 当前行("运单编号") ="" Then
    msgbox("未获取物流单号!")
Else
    If kddm = "中通快递" Then
        Dim properties As new zopsdk.ZopProperties("a27daa5603d342bd8021c90a8c497d7f","dc3f587db1e1")
        Dim client As new zopsdk.ZopClient(properties)
        Dim request As new zopsdk.ZopRequest()
        request.url = "http://japi.zto.cn/traceInterfaceNewTraces"
        request.addParam("company_id", "a27daa5603d342bd8021c90a8c497d7f")
        request.addParam("msg_type", "NEW_TRACES")
        request.addParam("data", "["""& 当前行("运单编号") &"""]")
        Dim str = client.execute(request)
        Dim jo As JObject = JObject.Parse(str)
        Dim ja As JArray = jo("data")
        
        If ja IsNot Nothing AndAlso ja.Count > 0 Then
            For Each o As object In jo("data")(0)("traces")
                物流记录=物流记录 & vbcrlf & o("scanDate").Tostring & "|" & o("desc").tostring
            Next
            
        Else
            物流记录 = 物流记录 & vbcrlf & "错误:" & jo("data").tostring
            
        End If
    Else
        
        Select Case kddm
            Case "中通快递","淘宝深圳中通","中通","拼多多中通"
                kddm ="zt"
            Case "韵达快递","电子韵达","菜鸟白云韵达"
                
                kddm ="yd"
                
            Case "圆通快递","电子圆通","拼多多圆通","圆通"
                
                kddm ="yt"
            Case "电子百世","拼多多百世","菜鸟百世","百世"
                
                kddm="ht"
            Case "申通","拼多多申通","电子申通","京东申通"
                kddm="sto"
                
        End Select
        
        Dim ts As Integer=CInt((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000)
        Dim 被加密=  "103990express.info.get" & ts & "1432f1484debecd46dad8cbd11e376bf3a30d826"
        Dim sign  = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(被加密 , "MD5")
        Dim hc As new HttpClient("https://kop.kuaidihelp.com/api")
        hc.FormData.Add("app_id", "103990")
        hc.FormData.Add("method", "express.info.get")
        hc.FormData.Add("ts", ts )
        hc.FormData.Add("sign", sign )
        hc.FormData.Add("data", "{""waybill_no"":""" & 当前行("运单号") & """,""exp_company_code"":""" & kddm & """,""result_sort"":""1""}")
        Dim ret = hc.GetData
        
        Dim jo As JObject = JObject.Parse( ret )
        If jo("msg").ToString ="查询成功" Then
            Dim ja As JArray = jo("data")
            For i As Integer = 0 To ja.Count - 1
                Dim ja2 As JArray = ja(i)("data")
                For j As Integer = 0 To ja2.Count - 1
                    物流记录 =物流记录  & Chr(13) & Chr(10) & ja2(j)("time").ToString & " | " &ja2(j)("context").ToString
                Next
            Next
        Else
            物流记录 = 物流记录 & vbcrlf & "错误:" & jo("msg").tostring
            
        End If
        
        
        
    End If
    msgbox(物流记录)
End If


都是这样的错误。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/16 22:11:00 [只看该作者]

错误提示是解析json错误。可能
1、这台电脑没有获取到接口返回的数据
2、接收的数据和预期不一致,导致解析错误

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1483 积分:10551 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/12/17 14:43:00 [只看该作者]

怎么会有这样的问题?json就是错误了,也有数据呀。加上判断应该不会出错吧。

这个是json的,还有一个是赋值全局变量然后打开窗口也是一样的错误码。我现在吧双击换成按钮,不是经常出错,但还是有出错的情况

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1483 积分:10551 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/12/17 14:45:00 [只看该作者]

      Dim jo As JObject = JObject.Parse( ret )
        If jo("msg").ToString ="查询成功" Then
            Dim ja As JArray = jo("data")
            For i As Integer = 0 To ja.Count - 1
                Dim ja2 As JArray = ja(i)("data")
                For j As Integer = 0 To ja2.Count - 1
                    物流记录 =物流记录  & Chr(13) & Chr(10) & ja2(j)("time").ToString & " | " &ja2(j)("context").ToString
                Next
            Next
        Else
            物流记录 = 物流记录 & vbcrlf & "错误:" & jo("msg").tostring
            
        End If

这段代码我要怎么加判断,才能使即便是错误的json也能不出错呢?返回的json里面无论怎么错都有msg,如果这个都是错的话,说明都没有返回结果或者是结果是官方的那种。

 回到顶部
帅哥哟,离线,有人找我吗?
zto001
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1483 积分:10551 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2019/12/17 14:46:00 [只看该作者]

还有api我都是调用的内部函数,为啥另一个按钮每次调用都是成功的,这个按钮每次都是错误的呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/17 14:49:00 [只看该作者]

接收的数据和预期不一致,导致解析错误。或者解析的时候没有考虑到所有的可能情况,有时候甚至会被接口文档坑了。这种情况没有其他什么好办法,只能是分析出错的时候接收的是什么数据,然后运行同样的代码,看是哪里解析出错。

 回到顶部