2016-10-17 3 views
0

に変換することはできません、私はすべてのオブジェクトを取得し、JSON配列に入れた後、サーバーからJSONオブジェクトを取得しようとすると、私はエラーを取得する:org.json.simple.JSONObjectはJSONObject

JSONObject object = null; 
try { 
    object = jsonArray.getJSONObject(i); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

このコードを返します:

W/System.err: **org.json.JSONException**: 
Value {"keywords":"","autor":"","resposta_complete":"Incomplete","revisor2":"","referencias":"","revisor3":"","revisor1":"","setor_pergunta":"","pergunta_anterior":"","resposta_curta":"","resposta_longa":"","record_id":"178","data_resposta":"2016-10-17","imagem":"","class_pergunta":"Nao se trata de uma pergunta, ou ela esta ininteligivel.","revisor_externo":"","pergunta_revisada":""} 
at 167 of type org.json.simple.JSONObject cannot be converted to JSONObject 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at org.json.JSON.typeMismatch(JSON.java:100) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at org.json.JSONArray.getJSONObject(JSONArray.java:484) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at ft.projetorisadinha.classes.LoadData$Load.populate(LoadData.java:206) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at ft.projetorisadinha.classes.LoadData$Load.doInBackground(LoadData.java:138) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at ft.projetorisadinha.classes.LoadData$Load.doInBackground(LoadData.java:63) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:287) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at java.lang.Thread.run(Thread.java:856) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err: java.lang.NullPointerException 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at ft.projetorisadinha.classes.LoadData$Load.populate(LoadData.java:210) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at ft.projetorisadinha.classes.LoadData$Load.doInBackground(LoadData.java:138) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at ft.projetorisadinha.classes.LoadData$Load.doInBackground(LoadData.java:63) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:287) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
10-17 17:32:34.660 15402-15453/ft.projetorisadinha W/System.err:  at java.lang.Thread.run(Thread.java:856) 

API 23で実行すると、すべてが正常です。 APIサポートの問題ですか?それをどうすれば解決できますか?

UPDATE私の活動インサイド

私のコード内
private org.json.simple.JSONArray array_obj = null; 

私はJSONをパースところ、ここにある:

if (reader == null) 
    reader = new BufferedReader(new InputStreamReader(response.body().byteStream())); 

while ((line = reader.readLine()) != null) { 
    JSONParser parser_obj = new JSONParser(); 
    if (array_obj == null) { 
     array_obj = (org.json.simple.JSONArray) parser_obj.parse(line); 
     jsonArray = new JSONArray(array_obj); 
    } 
} 

、ここでは私のJSONの輸入です

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 
import org.json.simple.parser.JSONParser; 

答えて

1

これを試してみてください:

import org.json.JSONObject; 

JSONObject object = new JSONObject(); 
try { 
    object = jsonArray.getJSONObject(i); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 

更新

あなただけ変更する必要があります:

import org.json.JSONObject; 

へ:

import org.json.simple.JSONObject; 

JSONArrayとと同じ操作を行います

+0

いいえ、同じエラーがまだ発生しています。しかし、私はそれがキャストエラーだと思う:注 - >型org.json.simple.JSONObjectはJSONObjectに変換することはできません –

+0

代わりに 'import org.json.JSONObject;'を使用してください –

+0

私はそれを使用しています。私の質問をより多くの情報で更新する –

0

まあ、私は私のコードの一部を変更する私の問題を解決:

の代わりに:

while ((line = reader.readLine()) != null) { 
    JSONParser parser_obj = new JSONParser(); 
    if (array_obj == null) { 
     array_obj = (org.json.simple.JSONArray) parser_obj.parse(line); 
     jsonArray = new JSONArray(array_obj); 
    } 
} 

私はシンプル書いた:this質問

に基づいて

while ((line = reader.readLine()) != null) { 
    JSONTokener tokener = new JSONTokener(line); 
    jsonArray = new JSONArray(tokener);     

*