loopj JsonObject with inside JsonArray JsonObjects



我有一个Web服务,它给了我这个:

{"result":[{"Id":"20","temperatura":"34","humedad":"29","Insertado":"2016-07-01 12:19:42"},{"Id":"21","temperatura":"34","humedad":"29","Insertado":"2016-07-01 12:34:42"},{"Id":"22","temperatura":"35","humedad":"28","Insertado":"2016-07-01 12:49:43"},{"Id":"23","temperatura":"35","humedad":"19","Insertado":"2016-07-01 13:29:06"},{"Id":"24","temperatura":"31","humedad":"18","Insertado":"2016-07-01 13:44:07"},{"Id":"25","temperatura":"33","humedad":"16","Insertado":"2016-07-01 13:59:10"}]}
这是一个对象,

它有和数组,数组有很多对象。

这是我的代码。我正在使用 loopj 库-

private void CaptarParametros(String idObjeto) {
    AsyncHttpClient client = new AsyncHttpClient();
    RequestParams params = new RequestParams();
    params.put(UtilitiesGlobal.SENSOR_ID, idObjeto);
    RequestHandle post = client.post(this, SENSORS_URL, params, new JsonHttpResponseHandler() {
        @Override
        public void onStart() {
            // called before request is started
        }
        @TargetApi(Build.VERSION_CODES.KITKAT)
        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            // called when response HTTP status is "200 OK"
            JSONObject jsonobject = null;
            JSONObject dht11JSONbject = null;
            JSONArray dht11JSONarray = null;

            try {
                jsonobject = new JSONObject(String.valueOf(response));
                dht11JSONbject = jsonobject.getJSONObject("result");
                dht11JSONarray = new JSONArray(dht11JSONbject);
                JSONArray dht11 = dht11JSONarray.getJSONArray(0);
                for (int i = 0; i < dht11JSONarray.length(); i++) {
                    JSONObject item = dht11.getJSONObject(i);
                    String temperatura = item.getString("temperatura");
                    String humedad = item.getString("temperatura");
                //Log.i(UtilitiesGlobal.TAG, "onSuccess: loopj " + usuarioiJSONbject);
                Log.i(UtilitiesGlobal.TAG, "onSuccess: loopj " + temperatura + humedad);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

但是我得到这样的错误:

org.json.JSONException: Value [{"Id":"19","temperatura":"35","humedad":"16","Insertado":"2016-07-01 12:19:24"}] at result of type org.json.JSONArray cannot be converted to JSONObject

我将不胜感激任何帮助.- 我需要在单独的数组中提取"温度"和 humedad,因为后来我必须在 MPAndroidChat 中使用它来制作拖曳折线图,一个图表用于一组参数,另一个图表用于其他参数。

解决方案在这里:

 try {
                jsonobject = new JSONObject(String.valueOf(response));
                //dht11JSONbject = jsonobject.getJSONObject("result");

                List<String> allNames = new ArrayList<String>();
                JSONArray cast = jsonobject.getJSONArray("result");
                for (int i=0; i<cast.length(); i++) {
                    JSONObject parametrosdht11 = cast.getJSONObject(i);
                    String temperatura = parametrosdht11.getString("temperatura");
                    String humedad = parametrosdht11.getString("humedad");
                    allNames.add(temperatura);
                    allNames.add(humedad);
                    //Log.i(UtilitiesGlobal.TAG, "onSuccess: loopj " + usuarioiJSONbject);
                    Log.i(UtilitiesGlobal.TAG, "onSuccess: loopj " +"temperatura: "+ temperatura +" humedad: " +humedad);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

我们有一个包含许多sub_objects的字符串,然后我们必须将它们放入数组或列表中。

从以下位置获取解决方案:如何在安卓中解析JSONArray

相关内容

  • 没有找到相关文章

最新更新