当我输入API时我尝试访问https://jsonlint.com/ ,结果是有效的。但是当尝试在 android studio 中解析它时,这就是我得到的:
06-23 20:46:54.092 2420-4258/azanmute.android.com.azanmute W/System.err: org.json.JSONException: java.lang.String 类型的值无法转换为 JSONArray 06-23 20:46:54.093 2420-4258/azanmute.android.com.azanmute W/System.err: 在 org.json.JSON.typeMismatch(JSON.java:111) 06-23 20:46:54.093 2420-4258/azanmute.android.com.azanmute W/System.err: 在 org.json.JSONArray.(JSONArray.java:96) 06-23 20:46:54.093 2420-4258/azanmute.android.com.azanmute W/System.err: 在 org.json.JSONArray.(JSONArray.java:108) 06-23 20:46:54.093 2420-4258/azanmute.android.com.azanmute W/System.err: 在 azanmute.android.com.azanmute.MainActivity$SaveTheFeed.doInBackground(MainActivity.java:93) 06-23 20:46:54.093 2420-4258/azanmute.android.com.azanmute W/System.err: 在 azanmute.android.com.azanmute.MainActivity$SaveTheFeed.doInBackground(MainActivity.java:62) 06-23 20:46:54.094 2420-4258/azanmute.android.com.azanmute W/System.err: 在 android.os.AsyncTask$2.call(AsyncTask.java:305) 06-23 20:46:54.094 2420-4258/azanmute.android.com.azanmute W/System.err:在java.util.concurrent.FutureTask.run(FutureTask.java:237) 06-23 20:46:54.094 2420-4258/azanmute.android.com.azanmute W/System.err: 在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 06-23 20:46:54.094 2420-4258/azanmute.android.com.azanmute W/System.err:在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 06-23 20:46:54.094 2420-4258/azanmute.android.com.azanmute W/System.err: 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 06-23 20:46:54.094 2420-4258/azanmute.android.com.azanmute W/System.err: 在 java.lang.Thread.run(Thread.java:761) 06-23 20:46:54.943 2993-3834/com.google.android.gms W/PlatformStatsUtil:无法检索使用情况和诊断设置。放弃。
引发错误的行是: JSONArray jArray = new JSONArray(jsonString);
最佳答案
您必须通过以下方式解析 JSON 字符串:
JSONObject jObject = new JSONObject(jsonString);
关于java - Android Studio 解析 JSON 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44728144/