java解析json字符串,当key不存在时的异常处理

younerest 2012-12-20 03:53:43
最近用JSON来解析字符串,遇到了点问题,请大侠们帮忙看下:
下面是把一个json字符串解析,并把解析出来的值放入对象中。json字符串里面的key最多的时候有100多个,
但并不是每次返回的json字符串里这100多个key都有包括。当json字符串不完全包含着100多个key的时候,我下面的这个方法解析就会出现异常。有这样一个方法可以解决,就是获取每一个key的时候,都分别加上一个try...catch,但100多个key就要加100多个try,有没有更好的方法来解决这个问题。
public static void jiexiTradeBean(String jsonstr)
{

tbBean tb=new tbBean();
JSONObject jo=JSONObject.fromObject(jsonstr);
JSONObject joo=jo.getJSONObject("trade_fullinfo_get_response");
JSONObject trade=joo.getJSONObject("trade");
try{
tb.setAdjust_fee(trade.getString("adjust_fee"));//解析赋值,当json字符串中不包含adjust_fee这个key的时候,就要用try来处理 catch(Exception e)
{}
try{
tb.setAlipay_id(trade.getString("alipay_id")); }catch(Exception e)
{}
..................中间用同样的方法解析107个就要用107个try{}catch()
tb.insert();

}
...全文
7895 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
耳东Kevin 2014-05-23
  • 打赏
  • 举报
回复
这是要挖坟暧昧a
xiesisi3 2014-04-01
  • 打赏
  • 举报
回复
直接写一个Bean,然后toBean不就好了。。。
TommyWu01 2014-04-01
  • 打赏
  • 举报
回复
额额额。。。。。围观
不是太高的手 2014-04-01
  • 打赏
  • 举报
回复
这是要挖坟暧昧
tony4geek 2014-04-01
  • 打赏
  • 举报
回复
又到老帖子了。
  • 打赏
  • 举报
回复
json已经提供toBean的方法了。为什么还要定义对象去set呢。
卖水果的net 2014-04-01
  • 打赏
  • 举报
回复
各位大师,谁有 js 处理这个问题的办法?
zuxianghuang 2013-03-27
  • 打赏
  • 举报
回复
if (trade.containsKey(“adjust_fee”)){ ....... }
Faith_hb 2013-03-27
  • 打赏
  • 举报
回复
垃圾的写法……
torytin 2012-12-20
  • 打赏
  • 举报
回复
补充下,如果你用的是org.json.JSONObject,那么它本身就有一个has("key")的方法来判断该key有没有存在
torytin 2012-12-20
  • 打赏
  • 举报
回复
获得trade的key集合,set的时候判断下该key有没有在集合中
younerest 2012-12-20
  • 打赏
  • 举报
回复
排版有点乱,重排一下 public static void jiexiTradeBean(String jsonstr) { tbBean tb=new tbBean(); JSONObject jo=JSONObject.fromObject(jsonstr); JSONObject joo=jo.getJSONObject("trade_fullinfo_get_response"); JSONObject trade=joo.getJSONObject("trade"); try{ tb.setAdjust_fee(trade.getString("adjust_fee"));//解析赋值,当json字符串中不包 catch(Exception e){} //含adjust_fee这个key的时候,就要用try来处理 try{ tb.setAlipay_id(trade.getString("alipay_id")); //同上 }catch(Exception e){} ..................中间用同样的方法解析107个就要用107个try{}catch() tb.insert(); }

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧