Foxtable(狐表)用户栏目专家坐堂 → 解析


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

主题:解析

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/28 15:25:00 [显示全部帖子]

呃,人家给你返回的是json数据吧?参考

 

dim str as string = "{""ty"": ""file"", ""size"": 0}"

msgbox(str)
Dim data As object
Dim JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
Dim ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", str)
End With

msgbox(data.ty)

[此贴子已经被作者于2016/12/28 15:25:40编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/28 17:42:00 [显示全部帖子]

参考代码

 

Dim str As String = "[{""a"":""1""},{""a"":""2""},{""a"":""3""}]"

msgbox(str)
Dim data As object
Dim JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
Dim ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", str)
End With

 

For Each info As object In data
    output.show(info.a)
Next


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/29 16:31:00 [显示全部帖子]

运行有什么问题?

 

                    Dim data As object
                    Dim JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}" '定义一个javascript函数,利用其eval函数转换json数据
                    Dim ScriptControl = CreateObject("MSScriptControl.ScriptControl")
                    With ScriptControl
                        .Language = "Javascript"
                        .Timeout = -1
                        .AddCode(JscriptCode)
                        data = .Run("toObject", Multi) '运行这个js函数
                    End With

 

其实,你直接用c#的json也是可以的,参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=89768&skin=0

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=76729&skin=0

 

 

 

 

 

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/30 14:27:00 [显示全部帖子]

 编写代码的时候,两个双引号表示一个双引号。你直接取字符串的时候,不需要写两个双引号。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/30 15:05:00 [显示全部帖子]

如果不是你要求,接口,是不可能给你返回两个双引号这种nc的数据的。

 

原来的代码有什么问题?返回的数据只需要有一个双引号啊。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/30 15:15:00 [显示全部帖子]

 是的,12楼的数据就是正确的数据了,可以直接用。

 

 如果还有问题,就截图说明。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/19 18:06:00 [显示全部帖子]

一层一层的获取值

 

For Each level1 As object In data
    msgbox(level1.id)
    For Each level2 As object In level1.BDinvoiceBody
        msgbox(level2.id)
        For Each level3 As object In level2.workInfos
        Next
    Next   
Next


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/9 18:24:00 [显示全部帖子]

Dim Multi As String = CurrentTable.value

 

Dim data As object
Dim JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
Dim ScriptControl = CreateObject("MSScriptControl.ScriptControl")
With ScriptControl
    .Language = "Javascript"
    .Timeout = -1
    .AddCode(JscriptCode)
    data = .Run("toObject", Multi)
End With

msgbox(data.id)
For Each level2 As object In data.BDinvoiceBody
    For Each level4 As object In level2.iall.workInfos
        msgbox(level4.whpiDl.workNo)
    Next
Next

 


 回到顶部