在 Android 上将 getString 与 JSONObject 类一起使用时获取 null

Posted

技术标签:

【中文标题】在 Android 上将 getString 与 JSONObject 类一起使用时获取 null【英文标题】:Getting null when using getString with JSONObject class on Android 【发布时间】:2021-10-30 10:59:00 【问题描述】:

我有以下代码:

JSONObject student2 = new JSONObject();
    try 
        student2.put("name", "NAME OF STUDENT2");

        System.out.println(student2.get("name"));
        System.out.println(student2.getString("name"));

     catch (JSONException e) 
        e.printStackTrace();
    

我只是想创建一个 JSONObject 并从中提取“名称”值。

但是两个“System.out.println”命令返回空值。我希望结果是字符串“NAME OF STUDENT2”。

我做错了什么?

【问题讨论】:

这段代码运行良好。我认为您的问题出在其他地方 没有堆栈跟踪,因为此代码没有生成错误。它只会导致空响应。 这段代码运行良好。您的环境可能有问题。 @fabiobh 您的代码 100% 正确,请正确签入 logcat 或在其他设备上尝试。我认为问题仅在日志中而不是打印中。所以尝试断开设备并再次检查或尝试在另一个设备中。检查这个i.stack.imgur.com/xB9r4.png 【参考方案1】:
try 
     JSONObject jsonObject = new JSONObject("\"name\":\"NAME OF STUDENT2\"");
     System.out.println(jsonObject.getString("name"));

catch (JSONException err)
     Log.d("Error", err.toString());

【讨论】:

虽然此代码可以回答问题,但提供有关 如何 和/或 为什么 解决问题的附加上下文将改善答案的长期价值。 这个解决方案是我想避免的。 Json 需要完全写在一个代码块中。当只有一个参数的时候,很容易写,但是如果需要在Json中写10个参数,那就一团糟了。

以上是关于在 Android 上将 getString 与 JSONObject 类一起使用时获取 null的主要内容,如果未能解决你的问题,请参考以下文章

在 Android TV 上将 ProgressBar 添加到 DetailsOverviewRow

android.content.Context.getString 中的 NPE 导致应用程序在启动时崩溃

有没有办法在Android上将arraybuffer从javascript传递到java?

Android java,使用getString()从string.xml导入字符串时出错

Android Widget Bundle getString 显示为空

如何在 Android 上将 TextView 居中?