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

      

  • 相关阅读:
    蓝桥杯 网络寻路
    ny33 蛇形填数
    集合运算 蓝桥杯 set容器
    蓝桥杯 回形取数
    bam/sam格式说明--转载
    samtools一些文档
    Linux批量更改文件后缀-转载
    GATK--使用转载
    Linux下wget下载整个FTP目录(含子目录)--转载
    CRLF line terminators导致shell脚本报错:command not found --转载
  • 原文地址:https://www.cnblogs.com/Jackie-zhang/p/6071769.html
Copyright © 2011-2022 走看看