2017-09-17 175 views
-1

我正在开发一个Android应用程序。有一个活动从远程PHP文件中检索JSON数据。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(); 
     } 
} 

什么我做错了吗?它抛出异常。

谢谢

+0

你可以添加你的异常吗? – user7294900

回答

1

从您发布服务器的响应来看,您会收到一个JSONArray,不是一个JSONObject。所以,你需要分析它本身和它采取的第一个元素:

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

谢谢,它的工作原理... – mvasco

1

这是一个JSONArray

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

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

编辑:发布完整的json数组,如果这只是从某处之间的片段。