JsonObject中的getJsonObject无法应用于int
问题描述:
我试图从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"
}
我是新来编程,因此任何帮助,将不胜感激。
答
试试这个代码
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
'的JSONObject jsonarray'什么是思维过程吗? –
[如何在Android中解析JSON]可能的重复(https://*.com/questions/9605913/how-to-parse-json-in-android) –
不需要'for循环',如果只使用JSON有单个对象 –