zoukankan      html  css  js  c++  java
  • 大话 JSON 之 JSONObject.getString(“”) 方法 和 JSONObject.optString(“”) 的区别

    运行以下代码:

    public static void main(String[] args)  
    {  
        JSONObject test = new JSONObject();  
        test.put("name", "kewen");  
        test.put("empty", null);  
      
        System.out.println("test.optString("empty"):" +test.optString("empty"));  
        System.out.println("test.optString("name"):" +test.optString("name"));  
        System.out.println("test.getString("name"):" + test.getString("name"));  
        System.out.println("test.getString("empty"):" + test.getString("empty"));  
    }  
    

      运行一把就会看到这样的结果 、

    test.optString("empty"):  
    test.optString("name"):kewen  
    test.getString("name"):kewen  
    Exception in thread "main" net.sf.json.JSONException: JSONObject["empty"] not found.  
        at net.sf.json.JSONObject.getString(JSONObject.java:2247)  
        at basicUtils.JSONUtil.main(JSONUtil.java:41)  
    

      因为:在JSONObjecy的key存在值得时候,两者是没有什么区别的,然后如果key对应的value为null,那么getString方法就会报错。

    至于为什么会这样我们可以看一下getString的源码

    public String getString( String key ) {  
       verifyIsNull();  
       Object o = get( key );  
       if( o != null ){  
          return o.toString();  
       }  
       throw new JSONException( "JSONObject[" + JSONUtils.quote( key ) + "] not found." );  
    }  
    

      

  • 相关阅读:
    【洛谷4941】War2 状压Dp
    洛谷4623 [COCI2012-2013#6] BUREK
    洛谷1099 [NOIP2007] 树网的核
    【Jim】I am back (ง •_•)ง
    发个ZKW线段树板子测试一下代码高亮
    洛谷2764 最小路径覆盖问题
    洛谷1972 [SDOI2009]HH的项链
    bzoj1059 [ZJOI2007]矩阵游戏
    知识点整理--组合数学
    最大矩形问题总结
  • 原文地址:https://www.cnblogs.com/Jackie-zhang/p/6071769.html
Copyright © 2011-2022 走看看