Android: How to get JSON object keys from this json:

我是研究僧i 提交于 2019-12-07 13:03:02

问题


This is the JSON array:

 {
    "server_response": [{
        "Total": "135",
        "Paid": "105",
        "Rest": "30"
    }]
}

So, how can i get the object names? I want to put them in separate TextView. Thanks.


回答1:


Put this out side everything. I mean outside onCreate() and all.

private <T> Iterable<T> iterate(final Iterator<T> i){
    return new Iterable<T>() {
        @Override
        public Iterator<T> iterator() {
            return i;
        }
    };
}

For getting the names of objects :

    try
    {
        JSONObject jsonObject = new JSONObject("{" +"\"server_response\": [{" +"\"Total\": \"135\"," +"\"Paid\": \"105\"," +"\"Rest\": \"30\"" +"}]"+"}";);
        JSONArray jsonArray = jsonObject.getJSONArray("server_response");
        JSONObject object = jsonArray.getJSONObject(0);

        for (String key : iterate(object.keys())) 
        {
            // here key will be containing your OBJECT NAME YOU CAN SET IT IN TEXTVIEW.
            Toast.makeText(HomeActivity.this, ""+key, Toast.LENGTH_SHORT).show();
        }

    } catch (JSONException e) {
        e.printStackTrace();
    }

Hope this helps :)




回答2:


My suggestion:

Go to this website:
Json to pojo

Get your pojo classes and then use them in Android.
All you need to do is to use Gson.fromGson(params here).
One of your params is the class that you created using the online schema.




回答3:


You can use jackson ObjectMapper to do this.

public class ServerResponse {

 @JsonProperty("Total") 
 private String total;
 @JsonProperty("Paid") 
 private String paid;
 @JsonProperty("Rest") 
 private String rest;

 //getters and setters
 //toString()
}

//Now convert json into ServerResponse object
ObjectMapper mapper = new ObjectMapper();
TypeReference<ServerResponse> serverResponse = new TypeReference<ServerResponse>() { };
Object object = mapper.readValue(jsonString, serverResponse);
 if (object instanceof ServerResponse) {
    return (ServerResponse) object;
 }



回答4:


JSONObject jsonObject = new JSONObject("Your JSON");
int Total = jsonObject.getJSONArray("server_response").getJSONObject(0).getInt("Total");
int Paid = jsonObject.getJSONArray("server_response").getJSONObject(0).getInt("Paid");
int Rest = jsonObject.getJSONArray("server_response").getJSONObject(0).getInt("Rest");


来源:https://stackoverflow.com/questions/37323044/android-how-to-get-json-object-keys-from-this-json

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!