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

      

  • 相关阅读:
    c#——总结两种方式下载模板
    c#——NPOL下载
    c#——泛型类型约束
    Oracle 数据类型
    软件测试绩效评估点
    读《没有带不好的员工》总结
    安装jenkins,配置pipline 运行docker
    K8S pv与pvc匹配不到的坑
    jenkins 在pipeline中运行docker镜像执行测试代码
    k8s 储存卷的定义与使用
  • 原文地址:https://www.cnblogs.com/Jackie-zhang/p/6071769.html
Copyright © 2011-2022 走看看