以文本方式查看主题

-  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=172148)

--  作者:aqsunxj
--  发布时间:2021/9/26 17:50:00
--  请教解析json数据的问题
想对返回的json数据解析,调试阶段 相同的接口返回的数据
一、
{
  "status": true,
  "data": "该公司暂时没有法律诉讼信息"
}

二、
{
  "status": true,
  "data": {
    "total": 2,
    "list": [
      {
        "caseContent": "原告:阜阳市融资担保有限公司:729781444 被告:安徽拓鑫再生资源有限公司:934537734,被告:阜阳龙跃精密轴承有限公司:349403845",
        "caseReason": "追偿权纠纷",
        "pulishDate": "2019-12-30",
        "caseName": "阜阳市融资担保有限公司与阜阳龙跃精密轴承有限公司、安徽拓鑫再生资源有限公司追偿权纠纷一审民事判决书",
        "caseNo": "(2019)皖1202民初3769号"
      },
      {
        "caseContent": "原告:阜阳市融资担保有限公司:729781444 被告:安徽拓鑫再生资源有限公司:934537734,被告:阜阳龙跃精密轴承有限公司:349403845",
        "caseReason": "追偿权纠纷",
        "pulishDate": "2019-09-30",
        "caseName": "阜阳市融资担保有限公司诉阜阳龙跃精密轴承有限公司、安徽拓鑫再生资源有限公司追偿权纠纷一案民事判决书",
        "caseNo": "(2019)皖1202民初3769号"
      }
    ]
  }
}

如果该公司没有诉讼的时候返回的date是没有嵌套的。
用如下代码,显示出错。请教问题出在哪了呢?谢谢

Dim jo As JObject = Jobject.Parse(ClipBoard.GetText)
If jo("data")("list") IsNot Nothing Then
    For Each jt As JToken In jo("data")("list")
        Output.Show(jt("caseReason").ToString & " | " & jt("caseNo").ToString)
    Next
Else
output.Show(jo("data"))
End If

--  作者:benben325
--  发布时间:2021/9/26 18:12:00
--  
dim str as string = jo("data").toString()
if str.contains("list") then
    For Each jt As JToken In jo("data")("list")
        Output.Show(jt("caseReason").ToString & " | " & jt("caseNo").ToString)
    Next
end if

--  作者:aqsunxj
--  发布时间:2021/9/26 18:43:00
--  
 收到 谢谢 老师
--  作者:有点蓝
--  发布时间:2021/9/26 20:22:00
--  
或者

Dim jo As JObject = Jobject.Parse(ClipBoard.GetText)
If Typeof jo("data") Is Jobject Then
    For Each jt As JToken In jo("data")("list")
        Output.Show(jt("caseReason").ToString & " | " & jt("caseNo").ToString)
    Next
Else
output.Show(jo("data"))
End If

--  作者:aqsunxj
--  发布时间:2021/9/27 9:14:00
--  
谢谢 蓝老师