如何从android中读取PHP中的数组

时间:2013-10-30 19:09:06

标签: android arrays json

我有以下php代码:

$response["information"]   = mysql_fetch_array($result) ;                   
echo json_encode($response);

我的php语句只返回和数组。我想要做的是在android中读取该数组的元素,所以我编写了以下代码,但似乎无法正常工作:

Date_Queries date_info_query = new Date_Queries();
            json = date_info_query.getDateInformation(uid_request,is_your_request);

            if (json.getString("result_code") != null) { 

                // Result Code = 0 --> Succesfully Select
                if (json.getString("result_code").equals("0")){ 

                    JSONArray information = json.getJSONArray("information");
                    JSONObject jobj = information.getJSONObject(0);

                    status       = jobj.getString("status");
                    return 0;
                }
            }

1 个答案:

答案 0 :(得分:1)

无法知道您的代码有什么问题,因为我们没有完整的图片。你提供的片段给我们留下了部分图片。也就是说,我们可以提供帮助:

1。)向我们展示Date_Queries()对象的组成部分。它是如何提出要求的?等

2。)向我们展示$ response对象的结构。

3.。)在尝试解析之前,将Java请求结果打印到控制台。验证它是否正确。

4.。)在try / catch中包围Java并打印堆栈跟踪,以便更好地评估任何类型的错误。

5.。)告诉我们您在哪里设置result_code以及任何其他可能的回复

6。)向我们展示所有相关代码

7.)向我们展示所有相关代码

8。)旁注,除非你知道自己在做什么,否则你应该在php中使用单引号,$response['information'] = ...

编辑:


根据您在下面的评论,您遇到的问题是您将响应视为数组,而不是对象...请阅读JSON规范:

http://www.json.org/

数组:[1,2,3,4] 对象:{“key1”:“val1”,“key2”:“val2”}

如果您将基础对象视为对象,则应停止抛出当前正在抛出的异常。

您可以使用json_encode()参数来确保数组中的所有响应都转换为对象。键将是数组索引。

json_encode($ob,JSON_FORCE_OBJECT);


如果问题不在最外层类型的响应中,请检查以确保其中的其他部分(例如“信息”)实际上是正确的。例如,mysql_fetch_array可以返回FALSE,这意味着它在到达您的Android应用时不是数组:

http://php.net/manual/en/function.mysql-fetch-array.php


最后请注意,您应该停止使用mysql_ *函数,而是使用PDO。

http://us2.php.net/manual/en/book.pdo.php