Foxtable(狐表)用户栏目专家坐堂 → 生成josn出现重复,怎么修正呢?


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

主题:生成josn出现重复,怎么修正呢?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
生成josn出现重复,怎么修正呢?  发帖心情 Post By:2023/11/9 15:09:00 [只看该作者]

当前代码如下:


Dim cmd As New SQLCommand
cmd.C '记得设置数据源名称
cmd.CommandText = "Se lect [_Identify],[_SortKey],卷宗名称,材料类别,材料名称,材料附件,材料guid From {View_juanzongcailiao} where 案件id='2b8ff1fa-2ed5-4cfd-ad3c-748616441a13' "
Dim dt As DataTable = cmd.ExecuteReader
Dim drs As List(Of DataRow) = dt.Se lect("材料名称 is not null and 材料guid is not null", "_SortKey")
Output.Show(drs.Count)
Dim j As New JObject
Dim ja As New JArray
For Each dr As DataRow In drs
    Dim jo As New JObject
    jo("id") = dr("材料guid").ToString
    jo("label") = dr("卷宗名称").ToString
'    jo("parentId") = "0"
'    jo("fujian") = dr("材料附件").ToString
    '        jo("children") = GetNavigation1(dt, dr)
    If Not ja.Contains(jo) Then
        ja.Add(jo)
    End If
Next
Output.Show(ja.ToString)

生成josn出现重复,怎么修正呢?  想以材料guid为唯一值,一个值只出现一次!

28
[
  {
    "id": "be125946-3411-4114-b074-d75fd9c99f35",
    "label": "333"
  },
  {
    "id": "be125946-3411-4114-b074-d75fd9c99f35",
    "label": "333"
  },
  {
    "id": "799c52ae-abe5-41be-be17-71baea6dd1bf",
    "label": "333"
  },
  {
    "id": "799c52ae-abe5-41be-be17-71baea6dd1bf",
    "label": "333"
  },
  {
    "id": "5b488b48-fe55-4e1b-ba91-4c1c3e4f4d51",
    "label": "333"
  },
  {
    "id": "5b488b48-fe55-4e1b-ba91-4c1c3e4f4d51",
    "label": "333"
  },
  
[此贴子已经被作者于2023/11/9 15:41:20编辑过]

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


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

cmd.CommandText = "Select 卷宗名称,材料guid,_SortKey From {View_juanzongcailiao} where 案件id='2b8ff1fa-2ed5-4cfd-ad3c-748616441a13' and 材料名称 is not null and 材料guid is not null"
Dim dt As DataTable = cmd.ExecuteReader
Dim j As New JObject
Dim ja As New JArray
For Each ss As string() In  dt.getbalues("材料guid|卷宗名称", "_SortKey")
    Dim jo As New JObject
    jo("id") = ss(0)
    jo("label") = ss(1)
[此贴子已经被作者于2023/11/9 15:19:13编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)cmd.CommandText = "Select 卷宗名称...  发帖心情 Post By:2023/11/9 15:41:00 [只看该作者]

如何实现根据label进行节点的调整,让label作为第一节点 然后以name作为第二节点呢?谢谢老师

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

Dim cmd As New SQLCommand
cmd.Conn ec tio nName = "主数据源" '记得设置数据源名称
cmd.CommandText = "Sel ect [_Identify],[_SortKey],卷宗名称,材料类别,材料名称,材料附件,材料guid From {View_juanzongcailiao} where 案件id='2b8ff1fa-2ed5-4cfd-ad3c-748616441a13'and 材料名称 is not null and 材料guid is not null "
Dim dt As DataTable = cmd.ExecuteReader
Dim ja As New JArray
For Each ss As String() In dt.getvalues("材料guid|卷宗名称|材料名称|材料附件")
    Dim jo As New JObject
    jo("id") = ss(0)
    jo("label") = ss(1)
    jo("name") = ss(2)
    jo("parentId") = "0"
'    jo("fujian") = ss(3)
    Dim json As String = ss(3)
    Dim jsonObjects As JArray = JArray.Parse(json) 
    Dim firstJsonObject As JObject = jsonObjects(0) 
    Dim urlValue As String = firstJsonObject("url")
    Output.Show("http://localhost:8088" & urlValue)
'      jo("children") = "123"
    If Not ja.Contains(jo("id")) Then
        ja.Add(jo)
    End If
Next
Output.Show(ja.ToString)


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


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

For Each ss As String In dt.getvalues("卷宗名称")
生成第一节点
     For Each ss2 As String In dt.getvalues("材料guid|材料名称","卷宗名称='" & ss & "'")
     生成第2节点

 回到顶部