Android中使用JSONObject类调用getString方法返回null如何解决?
问题排查步骤
- 先确认异常捕获逻辑是否触发:检查控制台是否打印了
JSONException的堆栈信息。如果put操作本身执行失败被catch捕获,student2中实际没有写入name字段,后续get操作自然返回null。常见的put失败场景包括当前使用的JSONObject实现是只读实例、key参数不符合实现类要求。 - 核对导入的JSONObject依赖包:不同库的JSONObject实现逻辑差异极大,是这类问题的高发原因:
- 若导入的是
org.json.simple.JSONObject:该实现的put方法不会抛出JSONException,出现写入异常时会直接静默失败,可升级依赖版本或更换为org.json的官方实现。 - 若导入的是fastjson、net.sf.json等第三方实现:部分旧版本存在特殊字符处理bug,可手动重新输入
"name"字符串作为key,避免复制粘贴的key隐含零宽空格等不可见字符,导致put和get使用的key实际不匹配。
- 若导入的是
- 排查变量覆盖或字段修改逻辑:在put操作后直接打印整个
student2对象,确认对象内部是否确实包含name键值对。如果打印结果中不存在该字段,说明put操作未生效;如果存在但get返回null,可检查代码中put和get之间是否有移除字段、覆盖同名变量的逻辑。
// 新增调试代码示例 student2.put("name", "NAME OF STUDENT2"); System.out.println(student2); // 直接打印全量对象确认内容
内容的提问来源于stack exchange,提问作者fabiobh
相关产品推荐
相关产品推荐

