我正在尝试对来自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();
}
我想解析排序的JsonArray到JSONObject这就是为什么我使用org.json.simple.JSONObject,但它说它不能转换为JSONObject。我尝试为obj使用org.json.simple.JSONObject数据类型,但我得到了这个错误
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();
}
编辑
我意识到我可以只使用(String)将JSONArray解析为字符串,而不使用JSONParse. -____-
jObject = new JSONObject((String) sortedJsonArray.get(i));
您正在使用库的JSONObject,该库使用默认JSONObject并对其进行一些操作。您正在使用simple包中该库的JSONObject。Jsonobject,您试图将其与默认json进行比较。J主题。试着看看你到底在做什么导致它。它不仅在这种情况下对你有帮助,而且在未来也会有帮助。
尝试以下解析:
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();
}
我试图将JSON文件中的数据显示到Listview中,但是我得到了以下解析错误。 下面是我的JSON文件: 下面是我的代码:
大家好,我的问题是我为android开发了一个应用程序,它使用json解析器从我的php Web服务中获取数据并将其显示在listview中,但当我运行该应用程序时,它显示了以下内容: 日志: 我的代码: 具有列表视图的活动并调用json解析器: Json解析器在这个我只改变了这一行BufferedReader=new BufferedReader(new InputStreamReader(is
我试过用多种方式选角,但都不起作用。为什么会发生这样的错误? ps:我正在使用
我得到了许多预期的结果,但它在以下错误堆栈中停止了: 然后我尝试测试,如果有一个“元”-对象(在上面的代码中注释掉了)。现在,解析器运行到字符串的末尾,但缺少许多条目。(不仅是在那一点上,在那一点上,它已经停止了。)我已经用软件验证器验证了JSON字符串(并且我的python脚本可以以预期的方式处理整个字符串。)我是JSON的新手,所以我不知道这可能是解析器的问题,还是在处理这个特定字符串的代码中
主要内容:1 简单JSON与JSONObject的转换,2 JSON数组与JSONArray的转换,3 复杂JSON与JSONObject的转换1 简单JSON与JSONObject的转换 1.1 简单JSON转为JSONObject MainApp: 运行效果为: 1.2 JSONObject转为简单JSON MainApp: 运行效果为: 2 JSON数组与JSONArray的转换 2.1 JSON数组转为JSONArray MainApp: 运行效果为: 2.2 JSONArray转为JS
MainActivity.java 对不起,我的英语很差。