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


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

主题:josn解析

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


加好友 发短信
等级:六尾狐 帖子:1359 积分:12028 威望:0 精华:0 注册:2012/3/5 11:32:00
josn解析  发帖心情 Post By:2023/1/17 15:05:00 [只看该作者]

 
JSON内容  为 :

{"dowhat":"ycldnhq","tablename":"ycldd","rownumber":"YCLDDTM:YCLDD-2301170000"}

请教 json解析

问题1:
输入进foxtable 的字符串是 以上内容 , 引号都为双引号,   这个能否直接解析

Dim jo_in As JObject = JObject.Parse(str)
Dim Dowhat As String  = jo_in("dowhat").ToString()
Dim tablename As String = jo_in("tablename").ToString()
Dim rownumber As String = jo_in("rownumber").ToString()
这种方式报错。

问题2:
如果输出一个JSON

能否全部都用 双引号?
[此贴子已经被作者于2023/1/17 15:14:38编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/17 15:15:00 [只看该作者]

提示什么错误?请贴出完整代码。

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


加好友 发短信
等级:六尾狐 帖子:1359 积分:12028 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2023/1/17 15:24:00 [只看该作者]


 Dim str As String =  args(0)

MessageBox.Show(Str)
Dim jo_in As JObject = JObject.Parse(str)
Dim Dowhat As String  = jo_in("dowhat").ToString()
Dim tablename As String = jo_in("tablename").ToString()
Dim rownumber As String = jo_in("rownumber").ToString()

文本为  {"dowhat":"ycldnhq","tablename":"ycldd","rownumber":"YCLDDTM:YCLDD-2301170000"}

代码如上

图片请看下

图片点击可在新窗口打开查看此主题相关图片如下:捕获1.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:捕获2.jpg
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:捕获3.jpg
图片点击可在新窗口打开查看


我把双引号强制转换为单引号 再解析 也报同样的错误!

[此贴子已经被作者于2023/1/17 15:32:22编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/17 15:34:00 [只看该作者]

我测试没有问题啊,sqlweb函数只有这几句代码?

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


加好友 发短信
等级:六尾狐 帖子:1359 积分:12028 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2023/1/17 15:36:00 [只看该作者]

 Dim str As String =  args(0)

str = str.Replace("""","'")
MessageBox.Show(str)

Dim jo_in As JObject = JObject.Parse(str)
Dim Dowhat As String  = jo_in("dowhat").ToString()
Dim tablename As String = jo_in("tablename").ToString()
Dim rownumber As String = jo_in("rownumber").ToString()



If Dowhat = "ycldnhq" Then
    
    Dim drf As DataRow = DataTables("YW_原材料订单").SQLFind("二维码 = '" & rownumber & "'")
    Dim rowguid As String
    If drf IsNot Nothing Then
        rowguid = drf("guid")
        
        Dim jo As New JObject
        Dim ja As New JArray
        jo("主表guid") = drf("guid")
        jo("供应商") = drf("供应商")
        jo("计划纳入日期") = drf("计划纳入日期")
        jo("备注") = drf("备注")
        jo("明细") =  ja

        Dim drs As List(of DataRow)
        drs=  DataTables("YW_原材料订单明细").SQLSelect("主表guid = '" & rowguid & "'")
        For i As Integer = 0 To drs.Count -1
            ja.Add(New JObject) '给数组添加两个对象成员
            ja(i)("guid") = drs(i)("guid")
            ja(i)("产品品番") = drs(i)("产品品番")
            ja(i)("收容数") = drs(i)("收容数")
            ja(i)("单位") = drs(i)("单位")
            ja(i)("计划纳入数量") = drs(i)("计划纳入数量")
            ja(i)("计划纳入总数量") = drs(i)("计划纳入总数量")
        Next
        MessageBox.Show(jo.ToString)
        Return jo.ToString
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/1/17 15:41:00 [只看该作者]

所以早就让您把完整代码发上来咯!

jo("主表guid") = drf("guid")
改为
jo("主表guid") = drf("guid").tostring
或者
jo("主表guid") = cstr(drf("guid"))

其它地方也一样的改

 回到顶部