2017-09-25 57 views
-3

我试图从JSONObject中提取数据时出现上述错误。我的目标是提取“transactionId”数据并将其存储在变量中以供将来使用。JsonObject中的getJsonObject无法应用于int

我有什么至今:

protected void onPostExecute(String result) { 

     super.onPostExecute(result); 
     if (pd.isShowing()) { 
      pd.dismiss(); 
     } 
     /*txtJson.setText(result);*/ 


     JSONObject jsonarray; 
     try { 
      jsonarray = new JSONObject(result); 
      for (int i = 0; i < jsonarray.length(); i++) { 
       JSONObject mJsonObject = jsonarray.getJSONObject(i); 
       Log.d("OutPut", mJsonObject.getString("transactionId")); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
} 

我的JSON对象如下图所示:

{ 
"merchantId":"X", 
"transactionId":"Y" 
} 

我是新来编程,因此任何帮助,将不胜感激。

+1

'的JSONObject jsonarray'什么是思维过程吗? –

+2

[如何在Android中解析JSON]可能的重复(https://stackoverflow.com/questions/9605913/how-to-parse-json-in-android) –

+0

不需要'for循环',如果只使用JSON有单个对象 –

回答

0

试试这个代码

JSONArray jsonarray; 
    try { 
     jsonarray = new JSONArray(result); 
     for (int i = 0; i < jsonarray.length(); i++) { 
      JSONObject mJsonObject = jsonarray.optJSONObject(i); 
      Log.d("OutPut", mJsonObject.optString("transactionId")); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

而且,如果单个项目在JSONArray,您可以删除for循环。

而且,如果接收到的响应是JSONObject的话,

JSONObject jsonObject; 
    try { 
     jsonObject = new JSONObject(result); 
     Log.d("OutPut", jsonObject.optString("transactionId")); 

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

谢谢你的回答。使用JsonObject部件,Android Device Monitor不会显示任何错误/警告,但也不会记录OutPut。 –

+0

尝试调试并检查为什么不显示任何日志 – Meenal

相关问题