以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  json嵌套问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=183704)

--  作者:aidimeng
--  发布时间:2022/11/14 14:38:00
--  json嵌套问题
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
        }
             
      ],
结构总是得到一组,错在哪里了呢

--  作者:有点蓝
--  发布时间: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
--  发布时间: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
          }
        ]
      ]

--  作者:有点蓝
--  发布时间:2022/11/14 15:32:00
--  
看2楼
--  作者:aidimeng
--  发布时间:2022/11/14 16:13:00
--  
理解了  现在可以了  在数组里 添加JObject 就可以了
这里有个困惑 
 joo("问题描述") = r("问题描述")  这里会报错  无法将string 转 JObject


--  作者:有点蓝
--  发布时间:2022/11/14 16:13:00
--  
joo("问题描述") = cstr(r("问题描述") )
--  作者:aidimeng
--  发布时间:2022/11/14 16:18:00
--  
还是一样的报错

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



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

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

--  作者:有点蓝
--  发布时间:2022/11/14 16:30:00
--  
不是这句代码的问题
--  作者:aidimeng
--  发布时间: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 的值,搞不懂这是什么结构

--  作者:有点蓝
--  发布时间: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)