以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]json解析没有这个值该怎么判断? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172770) |
-- 作者:zto001 -- 发布时间:2021/10/30 10:52:00 -- [求助]json解析没有这个值该怎么判断? 以下是json,第一个有weight值,第二个没有。我该怎么判断有没有取值? 我之前用的还是报错 If jo("weight") Is Nothing Then Output.Show("无该值") Else Output.Show(jo("weight") .ToString ) End If { "data":{ "773127202239":[ { "memo":"【湖南株洲公司】的收件员【聂坚波】已收件", "weight":"0.2", }, { "memo":"快件由【湖南株洲公司】发往【湖南长沙转运中心】", },................................ |
-- 作者:有点蓝 -- 发布时间:2021/10/30 10:57:00 -- 就是上面的用法,报什么错?贴出完整代码说明 |
-- 作者:zto001 -- 发布时间:2021/10/30 11:27:00 -- 以下内容是专门发给有点蓝浏览 |
-- 作者:有点蓝 -- 发布时间:2021/10/30 11:31:00 -- 调试看看那一句代码出错? 不一定是weight的问题,比如data、776302079750583、opTime这些属性不存在都会出错的,如果这些属性不确定是否一定存在,应该都加上判断
|
-- 作者:zto001 -- 发布时间:2021/10/30 11:41:00 -- 因为这行里面没有weight,所以出错,其他出错原因也都是因为没有那个对象(是完全没有这个对象,不是空值) |
-- 作者:有点蓝 -- 发布时间:2021/10/30 12:01:00 -- 我测试没有问题 Dim s As String = "{""data"":{""773127202239"":[{""memo"":""【湖南株洲公司】的收件员【聂坚波】已收件"",""weight"":""0.2"",},{""memo"":""快件由【湖南株洲公司】发往【湖南长沙转运中心】""}]}}" Dim jo As JObject = JObject.Parse(s) For Each jt As JObject In jo("data")("773127202239") If jt("weight") Is Nothing Then Output.Show("无该值") Else Output.Show(jt("weight").ToString ) End If Next |