私が持っている以下のJSON文字列の中から配列を取得:JSONArray
{
"error":false,
"message":"modules retrieved successfully",
"subjectsEnrolled":
{
"studentNumber":"PT2014-1282",
"courseId":1,
"moduleNames":["Internet Programming and E-commerce","Operating Systems","Java and Distributed Systems"]
}
}
を、私はmoduleNames
で値を取得したいと思います。
試してみて、値を取得する現在の方法は次のとおりです。
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
try {
JSONObject object = new JSONObject(s);
JSONArray array = object.getJSONArray("moduleNames");
if (!object.getBoolean("error")) {
Toast.makeText(getActivity(), object.getString("message"), Toast.LENGTH_SHORT).show();
} else {
}
} catch (JSONException e) {
e.printStackTrace();
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
}
は次のトレースに続く:
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: org.json.JSONException: No value for moduleNames
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at org.json.JSONObject.get(JSONObject.java:355)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at org.json.JSONObject.getJSONArray(JSONObject.java:549)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at com.example.vhuhwavho.mylms.ModulesFragment$PerformNetworkRequest.onPostExecute(ModulesFragment.java:166)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at com.example.vhuhwavho.mylms.ModulesFragment$PerformNetworkRequest.onPostExecute(ModulesFragment.java:137)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at android.os.AsyncTask.finish(AsyncTask.java:632)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at android.os.AsyncTask.access$600(AsyncTask.java:177)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at android.os.Looper.loop(Looper.java:146)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5487)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
10-29 20:48:50.741 14484-14484/com.example.vhuhwavho.mylms W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
10-29 20:48:50.746 14484-14484/com.example.vhuhwavho.mylms W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
10-29 20:48:50.746 14484-14484/com.example.vhuhwavho.mylms W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
10-29 20:48:50.746 14484-14484/com.example.vhuhwavho.mylms W/System.err: at dalvik.system.NativeStart.main(Native Method)
10-29 20:48:50.746 14484-14484/com.example.vhuhwavho.mylms E/JSON Parser: Error parsing data org.json.JSONException: No value for moduleNames
何かアドバイスを?
JSONObject root_object = new JSONObject(s);
JSONObject object = root_object.getJSONObject("subjectsEnrolled");
JSONArray array = object.getJSONArray("moduleNames");
私はあなたがコーディングハッピーあなたの問題を解決し@Yeezus **!**嬉しいです。 – Xenolion