首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android应用和数据库通信: JSON解析和列表视图

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

Stack Overflow用户
提问于 2018-06-18 00:23:54
回答 1查看 194关注 0票数 -2

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

我的问题是,我需要发送的值是一个表的多条记录,每条记录都有四列,例如name、age、department和country。我正在使用JSON对这些值进行编码,但我需要帮助才能继续操作。我应该使用JSON编码的2D数组吗?如果是这样,如何使用PHP来构造此数组,因为可以有可变数量的行。

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

到目前为止,这是我的进度: JSON在浏览器中的输出:

{"name0":"ABC","age0":"25",“department0”:“医疗”,"country0":"XYZ","name1":"DEF","age1":"26",“department1”:“Eng.”,"country1":"XYZ"}

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

EN

回答 1

Stack Overflow用户

发布于 2018-06-18 00:42:20

我建议使用不同的json结构进行编码。如果有很多记录,你的文档很快就会变得一团糟。例如,您可以使用name0name1、... nameN。最好是像这样创建一个数组:

代码语言:javascript
复制
[
    {
        "name" : "ABC",
        "age" : 25,
        "department" : "Medical",
        "country" : "XYZ"
    },
    {
        ...
    }
]

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

至于在Android中解析它,你可以参考documentation。SDK附带了一个Json解析器,因此您需要做的就是将字符串作为一个json数组读入,并根据需要迭代它的对象节点。

例如

代码语言:javascript
复制
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");
    ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50898454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档