ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在ANDROID中解析嵌套的JSON

2019-10-02 11:27:30  阅读:89  来源: 互联网

标签:android json parsing


我试图解析这个结构:(它让我疯狂,我尝试了我能想到的一切.但我不是很有经验)

{
    "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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有