Foxtable(狐表)用户栏目专家坐堂 → 当前行如何生成json?


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

主题:当前行如何生成json?

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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
当前行如何生成json?  发帖心情 Post By:2020/3/8 12:54:00 [只看该作者]

我看帮助里面都是json拼接而成,后来查到一句:

根据现有对象生成JSON。

例如根据当前登录用户生成JSON,可在命令窗口执行:


Dim
jo As JObject = JObject.FromObject(User)
Dim
js As String = jo.ToString()
Output
.Show(js)


我想把某表的当前行生成json,除了拼接,可以用上面的语句生成吗?该怎么做? 


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


加好友 发短信
等级:六尾狐 帖子:1279 积分:7953 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2020/3/8 14:15:00 [只看该作者]

送你2个内部函数

Row2JObject:
Dim dr As DataRow = args(0)
Dim jo As JObject = args(1)

For Each dc As DataCol In dr.DataTable.DataCols
    If dc.IsString Then
        jo(dc.Name) = CStr(dr(dc.Name))        
    Else If dc.IsBoolean Then
        jo(dc.Name) = CBool(dr(dc.Name))
    Else If dc.IsNumeric Then
        jo(dc.Name) = Val(dr(dc.Name))        
    Else If dc.IsDate Then
        If dr.Isnull(dc.Name) =False Then
            jo(dc.Name) = CStr(dr(dc.Name))
        Else
            jo(dc.Name) = ""
        End If
    End If
Next

Table2Json:
Dim e As RequestEventArgs = args(0)
Dim dt As DataTable = args(1)

Dim jo As New JObject
Dim ja As New JArray
jo("list") =ja
For i As Integer =0 To (dt.DataRows.Count - 1)
    Dim jo2 As new JObject
    ja.Add(jo2)
    Dim dr As DataRow = dt.DataRows(i)

    Functions.Execute("Row2JObject",dr,jo2)
Next
e.WriteString(CompressJson(jo))
'jo就是你要的最终json
[此贴子已经被作者于2020/3/8 14:16:21编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2193 积分:13908 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2020/3/8 14:59:00 [只看该作者]

太感谢了图片点击可在新窗口打开查看

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


加好友 发短信
等级:童狐 帖子:273 积分:3406 威望:0 精华:0 注册:2012/4/20 16:43:00
  发帖心情 Post By:2020/11/26 0:37:00 [只看该作者]

图片点击可在新窗口打开查看

 回到顶部