Java 获取空JSONObject值

Java 获取空JSONObject值,java,android,json,null,Java,Android,Json,Null,我正试图创建一个JSONObject,代码如下。但是Android Studio说它是空的。我的错在哪里 我尝试了两种不同的方法来创建它 第一 第二 字符串电子邮件的值为空,应为空giselaflores@giselaflores.com.br. 当我尝试调试时,我收到一条消息jsonEmpresa:“null”。要获取给定示例的电子邮件值,您应该 String JSONString = "{" + " \"retorno\": {" +

我正试图创建一个JSONObject,代码如下。但是Android Studio说它是空的。我的错在哪里

我尝试了两种不同的方法来创建它

第一

第二

字符串电子邮件的值为空,应为空giselaflores@giselaflores.com.br.


当我尝试调试时,我收到一条消息jsonEmpresa:“null”。

要获取给定示例的电子邮件值,您应该

 String JSONString = "{" +
                "  \"retorno\": {" +
                "    \"empresas\": [" +
                "      {" +
                "        \"cnpj\": \"05.743.645/0001-38\"," +
                "        \"razao_social\": \"GISELA TRANSPORTES E DISTRIBUIDORA DE FLORES LTDA - ME\"," +
                "        \"endereco\": \"EST RSC-453 (ROTA DO SOL) KM 93,8\"," +
                "        \"bairro\": \"BAIRRO ALFANDEGA\"," +
                "        \"numero\": 26," +
                "        \"complemento\": \"\"," +
                "        \"telefone\": \"3462 2749\"," +
                "        \"celular\": \"\"," +
                "        \"email\": \"giselaflores@giselaflores.com.br\"" +
                "      }" +
                "    ]" +
                "  }" +
                "}";
        try {
            JSONObject jsonEmpresa = new JSONObject(JSONString);
            JSONObject retorno = jsonEmpresa.getJSONObject("retorno");
            JSONArray empresas = retorno.getJSONArray("empresas");
            JSONObject empresa =  empresas.getJSONObject(0);

            String email =empresa.getString("email");

        } catch (JSONException e) {
            e.printStackTrace();
        }

它在哪里?在生成变量后,您没有显示代码。您是否查看了解析异常的logcat?顺便说一句,您在这里构建了两个不同的对象,因此可以显示一个?
String email=jsonEmpresa.getString(“email”)电子邮件:null jsonEmpresa:“null”对于第一个块,不,您的对象中没有电子邮件密钥。您必须先获得
retino
,然后获得
empresas
。。。对于第二个示例,这应该会返回电子邮件键的结果。再次,您在哪里显示电子邮件?请显示所有相关代码的列表。。。或者,请在收到电子邮件变量后立即添加Log.d行,并在第
JSONArray empresas=returno.getJSONArray(“empresas”)行显示您的logcat outputI got java.lang.NullPointerException
jsonEmpresa和returno都为null。@LucasPostinger您应该在androidTest文件夹下运行它,如果您在测试端运行它,它将抛出not mocked异常
try {
        JSONObject jsonEmpresa = new JSONObject();
        jsonEmpresa.put("cnpj", "05.743.645/0001-38");
        jsonEmpresa.put("razao_social", "GISELA TRANSPORTES E DISTRIBUIDORA DE FLORES LTDA - ME");
        jsonEmpresa.put("endereco", "EST RSC-453 (ROTA DO SOL) KM 93,8");
        jsonEmpresa.put("bairro", "BAIRRO ALFANDEGA");
        jsonEmpresa.put("numero", 26);
        jsonEmpresa.put("complemento", "");
        jsonEmpresa.put("telefone", "3462 2749");
        jsonEmpresa.put("celular", "");
        jsonEmpresa.put("email", "giselaflores@giselaflores.com.br");

        String email = jsonEmpresa.getString("email");
} catch (JSONException e) {
        e.printStackTrace();
    }
 String JSONString = "{" +
                "  \"retorno\": {" +
                "    \"empresas\": [" +
                "      {" +
                "        \"cnpj\": \"05.743.645/0001-38\"," +
                "        \"razao_social\": \"GISELA TRANSPORTES E DISTRIBUIDORA DE FLORES LTDA - ME\"," +
                "        \"endereco\": \"EST RSC-453 (ROTA DO SOL) KM 93,8\"," +
                "        \"bairro\": \"BAIRRO ALFANDEGA\"," +
                "        \"numero\": 26," +
                "        \"complemento\": \"\"," +
                "        \"telefone\": \"3462 2749\"," +
                "        \"celular\": \"\"," +
                "        \"email\": \"giselaflores@giselaflores.com.br\"" +
                "      }" +
                "    ]" +
                "  }" +
                "}";
        try {
            JSONObject jsonEmpresa = new JSONObject(JSONString);
            JSONObject retorno = jsonEmpresa.getJSONObject("retorno");
            JSONArray empresas = retorno.getJSONArray("empresas");
            JSONObject empresa =  empresas.getJSONObject(0);

            String email =empresa.getString("email");

        } catch (JSONException e) {
            e.printStackTrace();
        }