以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]按权限生成3级菜单输出JSON  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=146285)

--  作者:ymjr2011
--  发布时间:2020/2/20 17:46:00
--  [求助]按权限生成3级菜单输出JSON
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目json.rar


内附需求的JSON格式及图示
[此贴子已经被作者于2020/2/21 11:28:43编辑过]

--  作者:ymjr2011
--  发布时间:2020/2/20 20:04:00
--  
版主帮忙看看
--  作者:ymjr2011
--  发布时间:2020/2/21 8:14:00
--  
来个大虾看看
--  作者:xndd
--  发布时间:2020/2/21 8:42:00
--  
 

示例三

生成包括嵌套对象的JSON。

在命令窗口执行:

Dim jo As New JObject
jo
("name") = "李云龙"
jo
("age") = "36"
jo
("card") = New JObject
jo
("card")("bank") = "工行"
jo
("card")("account") = "12345678"
Output
.Show(jo.ToString)

显示的结果为:

{
  "name": "
李云龙",
  "age": "36",
  "card": {
    "bank": "
工行
",
    "account": "12345678"
  }
}


--  作者:ymjr2011
--  发布时间:2020/2/21 9:01:00
--  
这也我知道,只是后面的代码写了好多都不对
--  作者:有点蓝
--  发布时间:2020/2/21 9:05:00
--  
For Each s As String In DataTables("menu").GetValues("menu0","","id")
    For Each s1 As String In DataTables("menu").GetValues("menu1","menu0=\'" & s & "\'","id")
        Dim dr As DataRow = DataTables("menu").Find("menu0=\'" & s & "\' and menu1=\'" & s1 & "\'")
        jo("menuInfo")(s) = New JObject
        ja = new JArray
        jo("menuInfo")(s)("title") = s1
        jo("menuInfo")(s)("icon") = cstr(dr("icon0"))
        ja1 = new JArray
        For Each s2 As String() In DataTables("menu").GetValues("menu2|icon2|target","menu0=\'" & s & "\' and menu1=\'" & s1 & "\'")
            jo1 = New JObject
            jo1("title") = s2(0)
            jo1("href") = ""
            jo1("icon") = s2(1)
            jo1("target") = s2(2)
            ja2 = new JArray
            For Each s3 As String() In DataTables("menu").GetValues("menu3|href|icon3|target","menu0=\'" & s & "\' and menu1=\'" & s1 & "\' and menu2 = \'" & s2(0) & "\'")
                jo2 = New JObject
                jo2("title") = s3(0)
                jo2("href") = s3(1)
                jo2("icon") = s3(2)
                jo2("target") = s3(3)
                ja2.add(jo2)
            Next
            jo1("child") = ja2
            ja.add(jo1)
        Next
    Next
    jo("menuInfo")(s)("child") = ja
Next

--  作者:ymjr2011
--  发布时间:2020/2/21 9:16:00
--  
---------------------------
版本:2019.10.26.1
---------------------------
代码执行出错,错误信息:



System.NullReferenceException: 未将对象引用设置到对象的实例。

   在 UserCode.Test()
---------------------------
确定   
---------------------------


--  作者:有点蓝
--  发布时间:2020/2/21 9:23:00
--  
我测试没有问题,放到1楼的项目里测试。如果是其它项目,或者不同的数据,自己调试一下:调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm