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." );  
    }  
    

      

  • 相关阅读:
    iOS开发多线程篇—创建线程
    【C语言】23-typedef
    李洪强经典面试题10
    李洪强经典面试题9
    李洪强经典面试题8
    李洪强经典面试题7
    多态性
    Oracle exp使用正則表達式导出部分表
    Android NDK开发初步
    HDU1864 最大报销额 01背包
  • 原文地址:https://www.cnblogs.com/Jackie-zhang/p/6071769.html
Copyright © 2011-2022 走看看