Java 接收返回json数据中data里的值

还是上周写SSO的时候,接收登录服务器中的json数据里的值的解决过程

对接接口返回的数据格式:

{
    "success":true,
    "errorCode":0,
    "data":{
        "userId":"93ea76e2-2755-4ada-aef1-889ae0d6e158",
        "loginName":"test",
        "mobiles":[

        ],
        "roles":[

        ],
        "passwordUpdateTime":1538033566000
    },
    "message":null
}

需要取到success和data中userId和loginName

1、首先接收整段json数据,将接收到的json数据转为String类型,直接用String接收json转 的 seccess数据
2、将data再次转为单独的json数据,然后再次用String类型接收data转回的json数据即可

代码:

String map = this.httpsClients.doGet(checkUserUrl,"", params);  
            if (StringUtils.isEmpty(map)){
                return loginVo;
            }
            JSONObject json = JSONObject.parseObject(map);  //接收到所有传过来的json数据 
            Boolean success = json.getBoolean("success");  //直接json转Boolean类型,用Boolean类型的success接收叫做success的数据
            String  data = json.getString("data");     //用String接收json数据中的data数据
            JSONObject dataj = JSONObject.parseObject(data);  //再将data转为单独的json数据
            String userId = dataj.getString("userId");  //再次将data转为String数据并接收
            String loginName = dataj.getString("loginName");

这种被包含多层的数据需要多次转String转json再转String操作
因为数据debugger得在测试环境才能获取到那唯一的token,token用了一次之后就用不了了,所以不能上图,不然直接将debugger的过程数据放上面更直观

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值