Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get json array keys in android

Tags:

json

android

{
    "204": {
        "host": "https:\/\/abc.com\/production-source\/ChangSha\/2013\/12\/02\/0\/0\/A\/Content\/",
        "timestamp": 1385909880,
        "cover": ["17\/Pg017.png",
        "18\/Pg018.png",
        "1\/Pg001.png",
        "2\/Pg002.png"],
        "year": "2013",
        "month": "12",
        "day": "02",
        "issue": "2013-12-02",
        "id": "204"
    },
    "203": {
        "host": "https:\/\/abc.com\/production-source\/ChangSha\/2013\/12\/01\/0\/0\/A\/Content\/",
        "timestamp": 1385806902,
        "cover": ["1\/Pg001.png",
        "2\/Pg002.png",
        "3\/Pg003.png",
        "4\/Pg004.png"],
        "year": "2013",
        "month": "12",
        "day": "01",
        "issue": "2013-12-01",
        "id": "203"
    },
    "202": {
        "host": "https:\/\/abc.com\/production-source\/ChangSha\/2013\/11\/30\/0\/0\/A\/Content\/",
        "timestamp": 1385720451,
        "cover": ["1\/Pg001.png",
        "2\/Pg002.png",
        "3\/Pg003.png",
        "4\/Pg004.png"],
        "year": "2013",
        "month": "11",
        "day": "30",
        "issue": "2013-11-30",
        "id": "202"
    }
}

The above sample json array , how to get the 204, 203 and 202? Thanks

I tried:

JSONArray issueArray = new JSONArray(jsonContent);

for (int j = 0; j < issueArray.length(); j++) {
    JSONObject issue = issueArray.getJSONObject(j);
    String _pubKey = issue.getString(0);
}
like image 766
user782104 Avatar asked Dec 02 '13 05:12

user782104


2 Answers

above sample json array , how to get the 204, 203 and 202?

No, current String is JSONObject instead of JSONArray. you should get Iterator using JSONObject. keys () if inner JSONObject keys dynamic as:

JSONObject issueObj = new JSONObject(jsonContent);
Iterator iterator = issueObj.keys();
   while(iterator.hasNext()){
    String key = (String)iterator.next();
    JSONObject issue = issueObj.getJSONObject(key);

    //  get id from  issue
        String _pubKey = issue.optString("id");
    }
like image 163
ρяσѕρєя K Avatar answered Sep 20 '22 07:09

ρяσѕρєя K


Answer given by Mr. K is also right but you can also use jsonObject names() method. please find the sample code

for(int i = 0; i<jsonobject.length(); i++){
    Log.e(TAG, "Key = " + jsonobject.names().getString(i) + " value = " + jsonobject.get(jsonobject.names().getString(i)));
}

I hope dis will help you

like image 34
Amandeep Rohila Avatar answered Sep 19 '22 07:09

Amandeep Rohila