android应用与数据库通信:json解析和列表视图

8i9zcol2  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(343)

我正在开发一个与数据库通信的应用程序,用于检索值。我使用php作为后端,使用volley库在androidstudio上开发。
我的问题是,我需要发送的值是一个表的多个记录,每个记录有四列,例如name、age、department和country。我正在使用json对这些值进行编码,但是我需要如何继续的帮助。我应该使用json编码的2d数组吗?如果是这样,那么如何使用php来构造这个数组,因为可以有可变的行数。
另外,如何在android(java)中解析json对象/数组?
到目前为止,这是我的进展:浏览器中的json输出:
{“name0”:“”,“age0”:“25”,“department0”:“medical”,“country0”:“xyz”,“name1”:“def”,“age1”:“26”,“department1”:“engg.”,“country1”:“xyz”}
在这里,我使用php中的循环来命名json的每个“键”,并将其编码为json对象。但是在android中很难显示这一点。我在主活动xml文件中使用了一个包含4个文本视图和listview的xml布局。

dffbzjpn

dffbzjpn1#

我建议使用不同的json结构进行编码。如果有很多记录,你的会很快变得一团糟。例如,你会 name0 , name1 , ... nameN . 最好这样做:

[
    {
        "name" : "ABC",
        "age" : 25,
        "department" : "Medical",
        "country" : "XYZ"
    },
    {
        ...
    }
]

请注意,没有索引连接到您的键。如果需要,可以根据json对象节点在数组中的位置获取索引。
至于在android中解析它,可以参考文档。sdk附带了一个json解析器,因此您只需将字符串作为json数组读入,并根据需要遍历其对象节点。
例如

String jsonResponse = " ... "; // whatever the php backend gives you when you make a call to the endpoint
JSONArray arr = new JSONArray(jsonResponse);
for (int i=0; i<arr.length(); i++) {
    JSONObject obj = arr.get(i);
    String name = obj.getString("name");
    ...
}

相关问题