我正在开发一个与数据库通信的应用程序,以检索值。我使用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。
答案 0 :(得分:0)
我建议使用不同的json结构进行编码。如果有很多记录,你的东西会变得很乱。例如,您将拥有name0
,name1
,... 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");
...
}