日期:2014-05-17  浏览次数:20990 次

java解析json字符串,当key不存在时的异常处理
最近用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();
    
}

------解决方案--------------------
获得trade的key集合,set的时候判断下该key有没有在集合中
------解决方案--------------------
补充下,如果你用的是org.json.JSONObject,那么它本身就有一个has("key")的方法来判断该key有没有存在
------解决方案--------------------
if (trade.containsKey(“adjust_fee”)){
  .......
}
------解决方案--------------------
各位大师,谁有 js 处理这个问题的办法?
------解决方案--------------------
又到老帖子了。
------解决方案--------------------
这是要挖坟暧昧
------解决方案--------------------
额额额。。。。。围观
------解决方案--------------------
直接写一个Bean,然后toBean不就好了。。。