Android — org.json.simple.JSONObject нельзя преобразовать в org.json.JSONObject

Я пытаюсь отсортировать оценки, поступающие из JSONArray, и вывести только 10 лучших. Вот мой код.

try {
JSONArray jArray = new JSONArray(result);


List<String> jsonValues = new ArrayList<String>();
for (int i = 0; i < jArray.length(); i++)
   jsonValues.add(jArray.getString(i));
Collections.sort(jsonValues);
JSONArray sortedJsonArray = new JSONArray(jsonValues);


for(int i=0;i<10;i++){
    JSONObject jObject;
    try {
        JSONParser parser = new JSONParser();
        JSONObject obj  = (JSONObject) parser.parse((String) sortedJsonArray.get(i));

        Score score =new Score();
        score.setId(obj.getInt("Id"));
        score.setPlayerId(obj.getInt("PlayerId"));
        score.setHiScore(obj.getInt("HiScore"));
        tempList.add(score);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Я хотел проанализировать sortedJsonArray в JSONObject, поэтому я использовал org.json.simple.JSONObject, но он говорит, что его нельзя преобразовать в JSONObject. Я пытался использовать тип данных org.json.simple.JSONObject для obj, но получил эту ошибку

The method getInt(String) is undefined for the type JSONObject

Я получаю данные с веб-сервера

List<Score> tempList = new ArrayList<Score>();
HttpClient client = new DefaultHttpClient(); 

HttpGet getRequest = new HttpGet(EndPoint+"/Scores");
String result="";
HttpResponse response;
try {
    response = client.execute(getRequest);
    HttpEntity entity = response.getEntity();
        if(entity!=null){
        InputStream instream = entity.getContent();
        StreamConverter sc= new StreamConverter();
        result= StreamConverter.convertStreamToString(instream);
        instream.close();
    }

ИЗМЕНИТЬ

Я понял, что могу просто разобрать JSONArray в строку с помощью (String) и не использовать JSONParse. -____-

jObject =  new JSONObject((String) sortedJsonArray.get(i));

person camille    schedule 25.03.2016    source источник
comment
Пожалуйста, разместите json здесь   -  person Khizar Hayat    schedule 25.03.2016
comment
Попробуйте этот JSONObject obj = (JSONObject) parser.parse(sortedJsonArray.get(i));   -  person Khizar Hayat    schedule 25.03.2016
comment
Khizar Hayat Я пробовал это, он говорит, что sortedJsonArray является объектом, а JSONParser принимает строку.   -  person camille    schedule 25.03.2016
comment
Вы можете опубликовать свои заявления об импорте. похоже, вы используете другую библиотеку developer.android.com/reference/org/ json/JSONObject.html. является JSONOBject. Но у вас есть org.json.simple.JSONObect. проверьте свой json и операторы импорта на Android   -  person Raghunandan    schedule 25.03.2016


Ответы (2)


Попробуйте это для разбора:

  try {
            JSONObject jsonObject = new JSONObject(response);
            if (jsonObject.getString(KEY_SUCCESS).equals("true")) {

                preDefineAlertList = new ArrayList<HashMap<String, String>>();
                JSONArray jsonArray = jsonObject.getJSONArray("Data");

                for (int i = 0; i < jsonArray.length(); i++) {

                    HashMap<String, String> mapNew = new HashMap<String, String>();
                    JSONObject obj = jsonArray.getJSONObject(i);

                 //   Log.d("obj", obj.toString());


                    alert_message = obj.getString(Constants.Params.MESSAGE);
                    id = obj.getString(Constants.Params.ID);



                    mapNew.put("message", message);
                    mapNew.put("id",id);


                   // Log.d("mapNew", mapNew.toString());
                    preDefinetList.add(mapNew);

                }

            }

        } catch (JSONException e) {
            e.printStackTrace();
        }
person Nik Patel    schedule 25.03.2016

вы используете JSONObject библиотеки, которая использует JSONObject по умолчанию и выполняет с ним некоторые манипуляции. Вы используете JSONObject этой библиотеки из пакета simple.Jsonobject и пытаетесь сравнить его с json.Jsonobject по умолчанию. Попробуйте увидеть, что именно вы делаете, чтобы вызвать это. Это поможет вам не только в этом случае, но и в будущем.

person VarunJoshi129    schedule 25.03.2016