对Array Android的JSON RPC响应

问题描述 投票:0回答:2

我设法获得了json rpc请求的结果,如下所示:

{“id”:1,“jsonrpc”:“2.0”,“result”:{“channels”:[{“channel”:“Channel A”,“channelid”:2165,“label”:“Channel A”} ,{“频道”:“频道B”,“channelid”:748,“标签”:“频道B”}等。

我想解析一个数组的响应,我可以在循环的每次迭代中读取channel,channelid和label。但没有设法得到它。

任何帮助将非常感激。

对不起,有经验的编程,它自学成才

json rpc请求的代码:

  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);
java android json json-rpc
2个回答
0
投票

如果您遇到困难,Android Developer文档非常好。

的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");
        // ...
    }
}

希望这可以帮助!


0
投票

您可以像下面一样解析JSONObject

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");


        }


    }


}
© www.soinside.com 2019 - 2024. All rights reserved.