JSON对象响应

时间:2017-09-17 06:28:25

标签: android json

我正在开发Android应用。有一个活动从远程PHP文件中检索JSON数据。

这是收到的回复:

[{"result":{"cel_verificado":"888"}}]

这是我需要检索cel_certificado的值的函数:

我正在获取以下日志详细信息:

D/MainActivity: ID RESPUESTA CEL en SHOWJSONCELL = [{"result":{"cel_verificado":"888"}}]


 private void showJSONCel(String response){

        Log.d(TAG,"ID RESPUESTA CEL en SHOWJSONCELL = "+response);


        try {

            JSONObject jObj = new JSONObject(response);
            JSONObject user = jObj.getJSONObject("result");
            String recibido = user.getString("cel_verificado");
            cel_verificado_valor= recibido;
            Log.d(TAG, "ESTOY EN MAIN GET DATA SHOWJSONcel TRY"+cel_verificado_valor);


        } catch (JSONException e) {
            Log.d(TAG, "ESTOY EN MAIN GET DATA SHOW JSON CELL error");
            e.printStackTrace();
        }
}

我做错了什么?它引发了异常。

谢谢

2 个答案:

答案 0 :(得分:1)

查看您发布的服务器的响应,您会收到JSONArray,而不是JSONObject。所以你需要解析它并从中获取第一个元素:

try {
    JSONArray jArr = new JSONArray(response);
    JSONObject jObj = jArr.getJSONObject(0);
    JSONObject user = jObj.getJSONObject("result");
    // ..
}

答案 1 :(得分:1)

这是一个JSONArray

[{"result":{"cel_verificado":"888"}}

你必须得到第一个对象JSONObject(0),然后使用字符串“result”,它将再次给你一个JSON对象

编辑:发布完整的json数组,如果这只是介于两者之间的片段。