美文网首页工作生活
JSONObject get() 与 getString()

JSONObject get() 与 getString()

作者: CNSTT | 来源:发表于2019-07-01 15:39 被阅读0次

一、前言

1、net.sf.json.JSONObject
当JSONObject的key存在,两者没有区别(get()需额外转字符串型)。
key不存在时,那么getString()方法就会抛出异常。
2、com.alibaba.fastjson.JSONObject(推荐)
key不存在时,那么getString()方法直接返回null

二、源码

public Object get(String key) {
  this.verifyIsNull();
  return this.properties.get(key);
}
 
private void verifyIsNull() {
  if (this.isNullObject()) {
    throw new JSONException("null object");
  }
}
 
public boolean isNullObject() {
  return this.nullObject;
}

public String getString(String key) {  
  verifyIsNull();  
  // 核心语句 判断key键是否存在
  Object o = get(key);
  if( o != null ){  
      return o.toString();  
  }  else {
     throw new JSONException( "JSONObject[" + JSONUtils.quote( key ) + "] not found." );  
  }
}  

三、实例

JSONArray data = JSONArray.fromObject(param.get("data"));
for (int i = 0; i < data.size(); i++) {
  JSONObject map = data.getJSONObject(i);
  log.info("每一项map-----------------------------" + map);
  String param0 = String.valueOf(map.get("age"));
  log.info("JSONObject get 存在key-----------------------------" + param0);
  String param1 = String.valueOf(map.get("sex"));
  log.info("JSONObject get 不存在key---------------------------" + param1);
  String param2 = map.getString("age");
  log.info("JSONObject getString 存在key-----------------------" + param2);
  String param3 = map.getString("sex");
  log.info("JSONObject getString 不存在key---------------------" + param3);
}

传参请求

image.png

日志打印

image.png

四、总结

1、当一定存在某个key,两者方法皆可,建议使用getString(),节省代码量无需转字符串型。
2、当key不一定存在时,建议使用get(),以免抛出异常。
3、2021-09-27更新 推荐使用com.alibaba.fastjson.JSONObject!

谢谢阅读,有帮助的点个❤!

相关文章

  • JSONObject get() 与 getString()

    一、前言 当JSONObject的key存在,两者没有区别(get()需额外转字符串型)。当key不存在时,那么g...

  • JSONObject optString与getString的

    getString(String name)与optString(String name),功能一样,只是当无返回...

  • JSONObject optString或者getString方

    近来,在与服务端联调时发现个问题,总是拿不到数据,后来服务端发现客户端有个值为字符串"null"传过去了,服务端解...

  • 笔记

    1、在使用JSONObject时要注意,如果json字符串里没有属性,getString它就会抛出异常,如果不能确...

  • Velocity遍历java的JSONObject

    $!results.get("fields")返回的对象是fastjson的JSONObject对象,foreac...

  • Json

    JSONArray与JSONObject简介JSONObject的数据是用 { } 来表示的,例如: { “id”...

  • 09网络技术-解析JSON

    使用JSONObject解析 还是在Apache\htdocs目录中新建一个get_data.json的文件,然后...

  • 关于生成json字符串

    由Map组装数据内容,最后通过JSONObject与JSONArray来生成json 直接通过JSONObject...

  • Object转换JSONObject

    1、JSONObject resultJson = (JSONObject) JSONObject.wrap(ar...

  • JSONObject 一些操作

    1. 插入元素 JSONObject jsonObject =JSONObject.parseObject(par...

网友评论

    本文标题:JSONObject get() 与 getString()

    本文链接:https://www.haomeiwen.com/subject/stmgcctx.html