Foxtable(狐表)用户栏目专家坐堂 → [求助]json解析没有这个值该怎么判断?


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

主题:[求助]json解析没有这个值该怎么判断?

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
[求助]json解析没有这个值该怎么判断?  发帖心情 Post By:2021/10/30 10:52:00 [只看该作者]

以下是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":"快件由【湖南株洲公司】发往【湖南长沙转运中心】",

            },................................

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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/30 10:57:00 [只看该作者]

就是上面的用法,报什么错?贴出完整代码说明

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2021/10/30 11:27:00 [只看该作者]


以下内容是专门发给有点蓝浏览


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


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

调试看看那一句代码出错?

不一定是weight的问题,比如data、776302079750583、opTime这些属性不存在都会出错的,如果这些属性不确定是否一定存在,应该都加上判断

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


加好友 发短信
等级:六尾狐 帖子:1465 积分:10403 威望:0 精华:0 注册:2018/10/16 11:42:00
  发帖心情 Post By:2021/10/30 11:41:00 [只看该作者]

因为这行里面没有weight,所以出错,其他出错原因也都是因为没有那个对象(是完全没有这个对象,不是空值)

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


加好友 发短信
等级:超级版主 帖子:107304 积分:545781 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部