Android应用和数据库通信:JSON解析和列表视图

时间:2018-06-17 16:23:54

标签: java php android mysql json

我正在开发一个与数据库通信的应用程序,以检索值。我使用PHP作为后端,并使用 Volley Library 在Android Studio上进行开发。

我的问题是,我需要发送的值是表的多个记录,每个记录有四列,例如名称,年龄,部门和国家/地区。我正在使用JSON来编码这些值,但我需要有关如何继续的帮助。我应该使用JSON编码的2D阵列吗?如果是这样,如何使用PHP来构造这个数组,因为可以有可变数量的行。

另外,如何解析Android(Java)中的JSON对象/数组?

截至目前,这是我的进步: 浏览器中的JSON输出:

  

{" NAME0":" ABC"" age0":" 25"" department0":& #34;医疗"" country0":" XYZ"" NAME1":" DEF"" AGE-1&# 34;:" 26"" department1":"工程证书"" COUNTRY1":" XYZ"}

在这里,我将每个"键命名为#34; JSON在PHP中使用循环,并编码为JSON对象。但难以在Android中显示此内容。我使用了一个带有4个textviews的XML布局,以及主Activity XML文件中的LISTVIEW。

1 个答案:

答案 0 :(得分:0)

我建议使用不同的json结构进行编码。如果有很多记录,你的东西会变得很乱。例如,您将拥有name0name1,... nameN。最好像这样制作一个数组:

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

请注意,没有与您的密钥连接的索引。如果需要,可以根据json对象节点在数组中的位置获取索引。

至于在Android中解析它,您可以参考documentation。 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");
    ...
}