以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  JToken  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=111590)

--  作者:huhu
--  发布时间:2017/12/25 16:23:00
--  JToken
Dim jo As JObject = JObject.Parse(json) For Each jt As JToken In jo("BDinvoiceBody") output.show(jt("contractNos")) Next
能否一次就取出jt("contractNos")的值,不然用for each next就会循环好几次,每次都取出同样的值,这样会不会耗时啊。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:json (2).txt



--  作者:有点甜
--  发布时间:2017/12/25 17:29:00
--  
 不可以,必须循环才能获取。
--  作者:huhu
--  发布时间:2018/1/2 12:35:00
--  
For Each  dr As DataRow In DataTables("销售出库单列表").DataRows
    Dim d2 As new ClassLibrary2.Class2()
    Dim Multi As String =d2.getInvoiceInfoByONo(dr("出库单号"))
    Dim jo As JObject = Jobject.Parse(Multi)
    Dim str As String = ""
    For Each jt As JToken In jo("BDinvoiceBody")
        str = jt("contractNos").ToString
    Next
    dr("合同号") = str
    dr.save
Next
这么写提示下面报错

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20180102123120.jpg
图片点击可在新窗口打开查看

单独取jt("contractNos")返回是正确的。为啥循环行就报错了呢?


--  作者:有点甜
--  发布时间:2018/1/2 12:52:00
--  

你获取的数据有问题。有可能是空值

 

Dim Multi As String =d2.getInvoiceInfoByONo(dr("出库单号"))

output.show("123" & Multi & "456")

Dim jo As JObject = Jobject.Parse(Multi)