Android使用JSON从数据库接收子数组

用户名

我可以成功地使用MySQL语句选择我想要的所有记录。格式如下:

{"result[
          {"totalDis":"764.108207","totalTime":"36","totalCalories":"49.9464197344328","Weight":"65","Sex":"M","Age":"18","MaxSpeed":"44.16","LongestT":"00:00:10","FarthestDis":"144.7902",
           "result2":[{"speed":"6.00","distance":"12"},
                      {"speed":"9.00","distance":"27"},
                      {"speed":"14.48","distance":"144.7902"},
                      {"speed":"1.45","distance":"10.135314"},
                      {"speed":"1.95","distance":"140.6154"},
                      {"speed":"44.16","distance":"88.322022"}
            ]}
]}

我已经使用下面的代码从数据库接收了许多数据,但是可以定义接收到的数据,因为它们都具有特定的名称,因此我可以根据它们的名称来获取它们。但是在result2中,同一字段具有多个数据,我想将它们全部收集起来并将其存储到不同的变量中。

private void getData(){
    String url = Config.DATA_URL+user;

    StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            showJSON(response);
        }
    },
    new Response.ErrorListener(){
        @Override
        public void onErrorResponse(VolleyError error){
            Toast.makeText(MyProfile.this, error.getMessage().toString(), Toast.LENGTH_LONG).show();
        }
    });

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);
}

private void showJSON(String response){
    String totalDis="";
    String totalTime="";
    String totalCalories="";
    String weight;
    String sex;

    String age="";
    String maxSpeed="";
    String longestT="";
    String farthestDis="";
    try {
        JSONObject jsonObject = new JSONObject(response);
        JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY);
        JSONObject collegeData = result.getJSONObject(0);
        totalDis = collegeData.getString(Config.KEY_TOTALDIS);
        totalTime = collegeData.getString(Config.KEY_TOTALTIME);
        totalCalories = collegeData.getString(Config.KEY_TOTALCALORIES);
        weight = collegeData.getString(Config.KEY_Weight);
        sex = collegeData.getString(Config.KEY_Sex);
        age = collegeData.getString(Config.KEY_Age);
        maxSpeed = collegeData.getString(Config.KEY_MaxSpeed);
        longestT = collegeData.getString(Config.KEY_LongestT);
        farthestDis = collegeData.getString(Config.KEY_FarthestDis);



        double tDis = Double.parseDouble(totalDis);
        tDis= Math.round(tDis);
        String ttDis = String.valueOf(tDis);

        double tCa = Double.parseDouble(totalCalories);
        tCa= Math.round(tCa);
        String ttCa = String.valueOf(tCa);

        double fDis = Double.parseDouble(farthestDis);
        fDis= Math.round(fDis);
        String ffDis = String.valueOf(fDis);

        double ms = Double.parseDouble(maxSpeed);
        ms= Math.round(ms);
        String mms = String.valueOf(ms);

        txtUserDetail.setText("Weight: " + weight + "kg\nSex: "+sex + "\nAge: "+age);
        txtTotalTime.setText("Total Distance: "+ttDis+"m\nTotal Time: "+totalTime+"s\nTotal Calories: "+ttCa);
        txtX.setText("Fastest Speed: "+mms+"m/s\nLongest Duration: "+longestT+"\nFarthest Distance: "+ffDis+"m");
    }
    catch (JSONException e){
        e.printStackTrace();
    }

配置类

public class Config {
public static final String DATA_URL = "http://10.1.1.1/display.php?user=";
public static final String KEY_TOTALDIS = "totalDis";
public static final String KEY_TOTALTIME = "totalTime";
public static final String KEY_TOTALCALORIES = "totalCalories";
public static final String KEY_Weight = "Weight";
public static final String KEY_Sex = "Sex";
public static final String KEY_Age = "Age";
public static final String KEY_MaxSpeed = "MaxSpeed";
public static final String KEY_LongestT = "LongestT";
public static final String KEY_FarthestDis = "FarthestDis";
public static final String JSON_ARRAY = "result";
}
阿米尔
     JSONObject jsonObject=yourResult.getJsonObject();
    JSONArray jsonArray=jsonObject.getJSONArray("result2");
    for (int i = 0; i <jsonArray.length() ; i++) {
        JSONObject jsonObject=jsonArray.getJSONObject(i);
        String speed=jsonObject.getString("speed");
        String distance=jsonObject.getString("distance");
        speedArray.add(speed);
        distanceArray.add(distance);
    }

这将在对应的数组中检索json结果

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用列表从数据库接收行

来自分类Dev

使用JSON数组填充phonegap sqllite数据库

来自分类Dev

使用Laravel从数据库返回嵌套Json作为数组

来自分类Dev

使用JSON数组填充phonegap sqllite数据库

来自分类Dev

使用 Laravel 从 json 数组中获取数据库表

来自分类Dev

orderByValue 在子 [Firebase 数据库 Android]

来自分类Dev

使用JSON和PHP更新数据库(Android)

来自分类Dev

使用JSON和PHP更新数据库(Android)

来自分类Dev

JSON数组到MySQL数据库

来自分类Dev

在数据库更改时在 android 上接收通知

来自分类Dev

Android数组到mysql数据库?

来自分类Dev

如何使用libpqxx从PostgreSQL数据库接收通知?

来自分类Dev

使用ajax从数据库接收多个值

来自分类Dev

如何使用 php 脚本从 MySQL 数据库中获取数据到嵌套的 JSON 数组中?

来自分类Dev

无法从 Firebase 数据库接收数据

来自分类Dev

如何从服务到android中的sqlite数据库解析带有JSON对象和JSON数组的JSON数据?

来自分类Dev

数据库库数组

来自分类Dev

Laravel - 将 JSON 数组数据插入数据库

来自分类Dev

使用JSON Jquery的数据库

来自分类Dev

使用JavaScript从数据库更新JSON

来自分类Dev

使用 Java 的 JSON MySQL 数据库

来自分类Dev

android firebase 数据库使用材料搜索过滤所有子值

来自分类Dev

在Android中使用外部数据库

来自分类Dev

ListView在android中使用数据库

来自分类Dev

使用SQLite的Android数据库错误

来自分类Dev

在android中使用本地数据库

来自分类Dev

在Android开发中使用数据库

来自分类Dev

ListView在android中使用数据库

来自分类Dev

使用strong_params将JSON数组保存到Rails的数据库中

Related 相关文章

热门标签

归档