Fer Serone
Fer Serone

Reputation: 1

JSON RPC response to Array Android

I managed to get results for a json rpc request, like this:

{"id":1,"jsonrpc":"2.0","result":{"channels":[{"channel":"Channel A ","channelid":2165,"label":"Channel A"},{"channel":"Channel B ","channelid":748,"label":"Channel B"} etc.

I would like to parse the reponse to an array where i can read channel,channelid and label at each iteration of a loop. but did not manage to get it.

Any help would be much appreciated.

Sorry not that experienced with programming , its al self-taught

Code for json rpc request :

  String groupchannelsurl = "http://192.168.2.100:8080/jsonrpc?request={\"jsonrpc\": \"2.0\", \"method\": \"PVR.GetChannels\", \"params\": {\"channelgroupid\" : 9,\"properties\":[\"channel\"]}, \"id\": 1 }";
    
        RequestQueue queue = Volley.newRequestQueue(this);  
        JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, groupchannelsurl, null,
                new Response.Listener<JSONObject>()
                {
                    @Override
                    public void onResponse(JSONObject response) {
                        // display response
                        Log.d("Response", response.toString());
                      

                    }
                },
                new Response.ErrorListener()
                {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Log.d("Error.Response", error.toString());
                    }
                }
        );


        queue.add(getRequest);

Upvotes: 0

Views: 584

Answers (2)

yatin deokar
yatin deokar

Reputation: 781

You can parse JSONObject like below

private void parseJsonObject(JSONObject responseObject) throws JSONException {

    String id = responseObject.getString("id");

    JSONArray jsonArray = responseObject.optJSONArray("channels");
    if (jsonArray != null) {

        for (int i = 0; i < jsonArray.length(); i++) {

            JSONObject arrayObject = (JSONObject) jsonArray.get(i);

            String channel = arrayObject.getString("channel");
            String channelId = arrayObject.getString("channelid");


        }


    }


}

Upvotes: 0

kingkupps
kingkupps

Reputation: 3534

The Android Developer documentation is really good if you get stuck.

JSONObject - https://developer.android.com/reference/org/json/JSONObject.html

JSONArray - https://developer.android.com/reference/org/json/JSONArray.html

@Override
public void onResponse(JSONObject response) {
    JSONArray channels = response.getJSONObject("result").getJSONArray("channels");
    for (int i = 0; i < channels.length(); i++) {
        JSONObject channel = channels.getJSONObject(i);
        String channelName = channel.getString("channel");
        int channelId = channel.getInt("channelid");
        String channelLabel = channel.getString("label");
        // ...
    }
}

Hope this helps!

Upvotes: 0

Related Questions