千家信息网

JSON中optString和getString的区别是什么

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,本篇文章为大家展示了JSON中optString和getString的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。常见使用原生的解析json方法:
千家信息网最后更新 2025年02月07日JSON中optString和getString的区别是什么

本篇文章为大家展示了JSON中optString和getString的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

常见使用原生的解析json方法:

JSONObject jsonObject = new JSONObject();

String str1 = jsonObject.optString("6不6");

String str2 = jsonObject.optString("6不6","默认6");

try {

String str3 = jsonObject.getString("666");

} catch (JSONException e) {

e.printStackTrace();

}

一:optString与getString的区别:

optString会在得不到你想要的值时候返回空字符串" "或指定的默认值,而getString会抛出异常。

optString可以解决服务器字段缺少或者没有该字段而导致的异常以至于程序崩溃。

推荐使用optString,可避免接口字段的缺失、value的数据类型转换等异常。

二:getString()可获取任意类型的数据?

先看JSONObject的源码如下:

JSONObject类部分源码:

/**

* Returns the value mapped by {@code name} if it exists, coercing it if

* necessary, or throws if no such mapping exists.

*

* @throws JSONException if no such mapping exists.

*/

public String getString(String name) throws JSONException {

Object object = get(name);

String result = JSON.toString(object);//任何类型强转为string

if (result == null) {

throw JSON.typeMismatch(name, object, "String");//为空抛出解析

}

return result;

}

/**

* Returns the value mapped by {@code name} if it exists, coercing it if

* necessary, or the empty string if no such mapping exists.

*/

public String optString(String name) {

return optString(name, "");

}

/**

* Returns the value mapped by {@code name} if it exists, coercing it if

* necessary, or {@code fallback} if no such mapping exists.

*/

public String optString(String name, String fallback) {

Object object = opt(name);

String result = JSON.toString(object);

return result != null ? result : fallback;//不为空取结果,为空取指定值

}

可以看到getString、optString任意类型的value在return之前都会被强转为string类型,

这也就是为什么一直用getString来获取字段时从没出现过数据类型异常的原因。

getString只有在没有该字段或结果为null的时候才会抛出异常。类型不会导致异常。

上述内容就是JSON中optString和getString的区别是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

类型 字段 数据 内容 技能 时候 源码 知识 结果 简明 简明扼要 也就是 从没 原因 只有 就是 常见 接口 文章 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 安徽工业大学数据库考试试卷 网络安全达人视频完整版 连云港江苏服务器公司虚拟主机 量子力学会取代网络安全 荆门图像识别软件开发 数据库when用法 有哪些标签数据库 万德数据库有账号密码 泰州推广网络技术推荐咨询 hotmail发送服务器 梦幻西游怎么确认所在服务器 跟网络安全有关的昵称 帝国神话县城内的服务器怎么传送 小程序 云数据库日期处理 广州诺特软件开发公司 外包 河南通信软件开发服务价钱 网络银行服务器异常怎么办 龙驰网信网络技术 web服务器nginx配置 专业网络技术培训十大品牌 虚拟机是虚拟服务器吗 国家网络安全宣传周指南手册 爆裂魔女玩哪个服务器 传奇世界服务器引擎 腾讯云服务器如何跟电脑 数据库的逻辑模型 无法开启虚拟机usb服务器 成都武侯天气数据库面试题 广州诺特软件开发公司 外包 学习软件开发一般要多少钱
0