以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  JSON对象解析时遇到  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=142014)

--  作者:yellow
--  发布时间:2019/10/16 15:53:00
--  JSON对象解析时遇到
解析企业微信返回来的JSON数据,到了"apply_data"那段怎么样解析?一大团的,一解析它就提示出错:

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

例如我要提取"apply_data" 中 “名单” 里的 “姓名” 值,应该这么做呢?

这是其中一段数据:
{
  "spname": "变更",
  "apply_name": "余小舜",
  "apply_org": "机电技术",
  "approval_name": [
    "吴柱",
    "谢培芳",

  ],
  "notify_name": [
    "管理相关"
  ],
  "sp_status": 2,
  "sp_num": 201910110072,
  "comm": {
    "apply_data": "[{\\"id\\":\\"item-1514447653363\\",\\"title\\":\\"说明\\",\\"type\\":\\"tips\\",\\"value\\":\\"\\"},{\\"id\\":\\"item-1514447662644\\",\\"title\\":\\"部门\\",\\"type\\":\\"text\\",\\"value\\":\\"18电气\\"},{\\"id\\":\\"item-1514447694555\\",\\"title\\":\\"第几周\\",\\"type\\":\\"number\\",\\"value\\":\\"6\\"},{\\"id\\":\\"item-1514457944110\\",\\"title\\":\\"原因\\",\\"type\\":\\"text\\",\\"value\\":\\"生病\\"},{\\"id\\":\\"item-1514470343431\\",\\"title\\":\\"变更\\",\\"type\\":\\"select\\",\\"value\\":\\"离园\\"},{\\"id\\":\\"item-1514447722075\\",\\"title\\":\\"名单\\",\\"type\\":\\"list\\",\\"value\\":[[{\\"id\\":\\"item-1514447759978\\",\\"title\\":\\"姓名\\",\\"type\\":\\"text\\",\\"value\\":\\"谢玮\\"},{\\"id\\":\\"item-1514447782658\\",\\"title\\":\\"手机号\\",\\"type\\":\\"number\\",\\"value\\":\\"13226318000\\"},{\\"id\\":\\"item-1515031350677\\",\\"title\\":\\"家属\\",\\"type\\":\\"text\\",\\"value\\":\\"谢华\\"},{\\"id\\":\\"item-1514447797634\\",\\"title\\":\\"家属手机\\",\\"type\\":\\"number\\",\\"value\\":\\"13421692000\\"},{\\"id\\":\\"item-1519633463609\\",\\"title\\":\\"宿舍\\",\\"type\\":\\"text\\",\\"value\\":\\"B12\\"},{\\"id\\":\\"item-1514447845515\\",\\"title\\":\\"住址\\",\\"type\\":\\"textarea\\",\\"value\\":\\"石湾镇\\"},{\\"id\\":\\"item-1514447882402\\",\\"title\\":\\"说明\\",\\"type\\":\\"tips\\",\\"value\\":\\"\\"}]]},{\\"id\\":\\"item-1514533131686\\",\\"title\\":\\"说明\\",\\"type\\":\\"tips\\",\\"value\\":\\"\\"}]"
  },
  "mediaids": [],
  "apply_time": 1570792989,
  "apply_user_id": "x047"
}

--  作者:有点蓝
--  发布时间:2019/10/16 16:01:00
--  
Dim jo As JObject = JObject.parse("JSON数据")
Dim ja As JArray = JArray.Parse(jo("comm")("apply_data"))
For i As Integer = 0 To ja.Count - 1
    output.show(ja(i)("id").Tostring)
    output.show(ja(i)("title").Tostring)
    output.show(ja(i)("value").Tostring)
Next

--  作者:yellow
--  发布时间:2019/10/16 16:39:00
--  
原来我是“JSON对象中的值数组的解析”与“JSON对象数组的解析”搞混了。
用了:
Dim ja As JArray = jo("comm")("apply_data")
而非:
Dim ja As JArray = JArray.Parse(jo("comm")("apply_data"))
受教了,谢谢!图片点击可在新窗口打开查看