繁体   English   中英

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

[英]Android app and Database Communication: JSON Parsing and List View

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

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

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

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

{"name0":"ABC","age0":"25","department0":"医疗","country0":"XYZ","name1":"DEF","age1":"26","部门 1":"Engg.","country1":"XYZ"}

在这里,我使用 PHP 中的循环命名 JSON 的每个“键”,并编码为 JSON 对象。 但是在Android中显示这个有困难。 我在主活动 XML 文件中使用了带有 4 个文本视图和 LISTVIEW 的 XML 布局。

我建议使用不同的 json 结构进行编码。 如果有很多记录,您的记录会很快变得混乱。 例如,您将拥有name0name1 、... 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");
    ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM