我试图解析这个结构:(它让我疯狂,我尝试了我能想到的一切.但我不是很有经验)
{
"topDrops" : {
"week" : "14",
"player" : [ {
"percent" : "3.70",
"id" : "10948"
}, {
"percent" : "3.49",
"id" : "0532"
}, {
"percent" : "2.46",
"id" : "11214"
}, {
"percent" : "2.20",
"id" : "0529"
}, {
"percent" : "2.04",
"id" : "0508"
} ]
},
"version" : "1.0",
"encoding" : "ISO-8859-1"
}
“topDrop”就像一个文件名? player是一个由5个玩家JSONObjects组成的JSONArray.但是在JSON术语中最重要的是什么呢.我在JSON验证器上检查有效,我需要这样的东西:
topDrop作为JSONObject
玩家为JSONArray
并循环遍历数组中的对象.
有什么建议么?
/约翰
解决方法:
这是我从URL解析json的代码:
public JSONObject getJSONFromUrl(String url) {
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
json = EntityUtils.toString(httpEntity);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
JSONObject jObj;
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
Log.v("debug", "JSON ready to parsing");
return jObj;
}
public void parsingData(JSONObject json) {
try {
JSONArray data = json.getJSONArray("data");
for (int i = 0; i < data.length(); i++) {
// Do your stuff, example :
JSONObject c = data.getJSONObject(i);
JSONObject topDrops = c.getJSONObject("topDrops");
JSONArray playerArray = topDrops.getJSONArray("player");
// playerArray.getJSONObject(0) == first player
}
} catch (JSONException e) {
e.printStackTrace();
Log.v("debug", "Error during the connection HTTP");
cancel(Boolean.TRUE);
}
}
标签:android,json,parsing 来源: https://codeday.me/bug/20191002/1842752.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。