JSON jsonObject.optString()返回字符串“ null”

JSON jsonObject.optString()返回字符串“ null”,第1张

JSON jsonObject.optString()返回字符串“ null”

您并非一个人遇到这个问题并挠头,想着“他们真的是这个意思吗?” 根据AOSP的问题,Google工程师 _ 确实_ 认为这是一个bug
,但他们必须与org.json实现兼容,甚至与bug兼容。

如果您考虑一下,这是有道理的,因为如果在其他Java环境中运行的使用相同库的相同代码在Android中的行为有所不同,则在使用第三方库时将存在主要的兼容性问题。即使意图很好并且确实修复错误,它也会打开全新的蠕虫病毒罐。

根据AOSP问题:

行为是故意的;我们竭尽全力与org.json兼容。现在已经解决了,目前尚不清楚我们是否也应该修复代码。应用程序可能已经依赖于这种错误行为。

如果这使您感到悲伤,我建议您使用另一种机制来测试null,例如json.isNull(),以解决此问题。

这是一种可以帮助您的简单方法:

public static String optString(JSonObject json, String key){    // http://pre.google.com/p/android/issues/detail?id=13830    if (json.isNull(key))        return null;    else        return json.optString(key, null);}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5090156.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存