接收JsonArray出错

 

 

 

1.接收别人的消息, 报错.

 

 

2.可以看到服务器上出错. 根据日志我们可以定位到代码里面,找到135行这个地方. 接收的对象不对!! 用 QueryPayReq接收报错!!!!

 

3.进去这个QueryPayReq里面, 可以看到对象的属性,找到了pay_item!!!!!!!!!!!!!!!!!!!!!!!

 

 

 

 


 

对方发给我的数据是一个Json数组(JsonArray) , 我接收的时候, 用了ArrayList去接收, 于是报错!!!! 经检查. 下面是正确的接收示范

 

1.首先来看下接口需求: 我请求2个参数给对方, 对方返回给我的应答参数,其中一个参数是Json数组的格式, 也就意味着,对方返回一个trans_nbr, 和返回多条pay_item , 那我该如何接收呢?

 

 

报文:  可以看到对方响应回来的参数, 格式是    trans_nbr:xxxxxxx   ,       pay_item[{xxxxxxxxxxxxxx},{xxxxxxxxxxxxxxxx},[xxxxxxxxxxxxxxxx]]

 

 

2. 代码接收

ResultOut resultOut = new JsonObject(body).mapTo(ResultOut.class);   //报文的格式
JsonObject jsonObject
= new JsonObject(resultOut.getMessage()); // 用JsonObject对象接收整个消息 String trans_nbr = jsonObject.getString("trans_nbr"); //接收第一个参数 JsonArray jsonArray = jsonObject.getJsonArray("pay_item"); //接收第二个参数jsonArray if (jsonArray.size() > 0) { //判断jsonArray 有无 for (int i = 0; i < jsonArray.size(); i++) { //因为是一个数据(有多条), 所以需要遍历, QueryPayOb oneJsonArray = (QueryPayOb) new JsonObject(jsonArray.getString(i)).mapTo(QueryPayOb.class); //jsonArray用实体类QueryPayOb 接收遍历出来的参数
//可以取到参数了
                     String orderNo=  oneJsonArray.getOrder_no();
                                    long payAmout =oneJsonArray.getPay_amount();
........


//其他的逻辑


                      }
                }

来个图,更直观

 

 

 

QueryPayOb  来接收pay_item数据.属性字段与pay_item一致!

 

 

 

 

 

 

 

 

 

总结:

当我们不知道该怎么样接收别人的数据时, 先将对方发来的数据,打印出来, 然后看人家是什么格式, 我们就怎么接收 !!!  要学会看报文 !!!!!!!

以及双方的参数要一致.

当然啦~

json格式生成. 接收,如何处理, 也还需要我日后多加实践起来.   

 

转载于:https://www.cnblogs.com/PinkPink/p/10518038.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值