Foxtable(狐表)用户栏目专家坐堂 → json嵌套问题


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

主题:json嵌套问题

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


加好友 发短信
等级:三尾狐 帖子:741 积分:7250 威望:0 精华:0 注册:2015/9/14 14:26:00
json嵌套问题  发帖心情 Post By:2022/11/14 14:38:00 [只看该作者]

Dim ja2 As New JArray
  ja2.add(New JObject)
 Dim fls As List(Of String) = r.DataRow.Lines("图片")   'count=2
For i As Integer = 0 To fls.Count = 1
    Dim fileurl As Long = Functions.Execute("upload", "d:\web\uploadfiles\" & fls(i))
 ja2(i)("问题描述") = wtms            '这里如果写成 r(“图片”)会报错,目前这样写 获取不到值
 ja2(i)("图片") = uuid
 jo("data")("data")("formson_4791") = ja2
 Next
通过上面想生成
  "formson_4791": [
        {
          "问题描述": "测试说明",
          "图片": 8451540374587001174
        },
             
       
 {
          "问题描述": "测试说明",
          "图片": 8451540374587001174
        }
             
      ],
结构总是得到一组,错在哪里了呢

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


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

Dim ja2 As New JArray
Dim fls As List(Of String) = r.DataRow.Lines("图片") 'count=2
For i As Integer = 0 To fls.Count = 1
    Dim fileurl As Long = Functions.Execute("upload", "d:\web\uploadfiles\" & fls(i))
    Dim jo As New JObject
    jo("问题描述") = wtms '这里如果写成 r(“图片”)会报错,目前这样写 获取不到值
    jo("图片") = uuid
    ja2.Add(jo)
Next
jo("data")("data")("formson_4791") = ja2
[此贴子已经被作者于2022/11/14 14:53:01编辑过]

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


加好友 发短信
等级:三尾狐 帖子:741 积分:7250 威望:0 精华:0 注册:2015/9/14 14:26:00
  发帖心情 Post By:2022/11/14 15:25:00 [只看该作者]

按上面的执行 得到的是 嵌套,不是并列,我调整了下 
Dim ja2 As New JArray
   ja2.add(New JObject)
 Dim fls As List(Of String) = r.DataRow.Lines("图片")
For i As Integer = 0 To fls.Count = 1
    Dim fileurl As Long = Functions.Execute("upload", "d:\web\uploadfiles\" & fls(i))
ja2(i)("问题描述") = "000"
 ja2(i)("图片") = uuid
Next
  jo("data")("data")("formson_4791") = ja2
ja2.Add(ja2)

结果
formson_4791": [
        {
          "问题描述": "000",
          "图片": 499545620
        },
        [  多了一个结构
          {
            "问题描述": "000",
            "图片": 499545620
          }
        ]
      ]

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


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

看2楼

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


加好友 发短信
等级:三尾狐 帖子:741 积分:7250 威望:0 精华:0 注册:2015/9/14 14:26:00
  发帖心情 Post By:2022/11/14 16:13:00 [只看该作者]

理解了  现在可以了  在数组里 添加JObject 就可以了
这里有个困惑 
 joo("问题描述") = r("问题描述")  这里会报错  无法将string 转 JObject


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


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

joo("问题描述") = cstr(r("问题描述") )

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


加好友 发短信
等级:三尾狐 帖子:741 积分:7250 威望:0 精华:0 注册:2015/9/14 14:26:00
  发帖心情 Post By:2022/11/14 16:18:00 [只看该作者]

还是一样的报错

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20221114161709.png
图片点击可在新窗口打开查看



Dim wtms As Object = r("问题描述")
 joo("问题描述") = wtms.ToString
这样转换下 可以了

[此贴子已经被作者于2022/11/14 16:28:32编辑过]

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


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

不是这句代码的问题

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


加好友 发短信
等级:三尾狐 帖子:741 积分:7250 威望:0 精华:0 注册:2015/9/14 14:26:00
  发帖心情 Post By:2022/11/14 17:14:00 [只看该作者]

{
  "code" : 0,
  "data" : {
    "workitems" : [ ],
    "app_bussiness_data" : "{\"affairId\":\"4663227942366759374\",\"summaryId\":\"5717566565233463531\"}",
    "processId" : "",
    "subject" : "食品安全周检查清单(鲍清阁 2022-11-14 17:10)"
  },
  "message" : ""
}
得到这样的结果,想取affairId 的值,搞不懂这是什么结构

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


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

Dim json As String = "上面的json字符串"
Dim jo As JObject = JObject.Parse(json)
Output.Show(jo("code").tostring)
Dim jo2 As JObject = JObject.Parse(jo("data")("app_bussiness_data").tostring)
Output.Show(jo2("affairId").tostring)

 回到顶部