0

我正在尝试将值从数据库发送到 Android 应用程序。我从教程开始,到了这里,但我得到:“错误解析数据 org.json.jsonexception 在字符 0 处输入结束”我可能还有其他错误,但这是我在运行应用程序时遇到的第一个错误.

编辑:我不能删除这个问题,但它不再相关。代码有错误,我同时纠正了。答案虽然有帮助,但不是解决方案。这可能是我的错,因为这个问题的表述很糟糕。

4

3 回答 3

1

发生错误是因为没有接收到要解析的 JSON 数据。这可能是因为您尝试从您的onCreate()方法中连接到 Internet。从 API 11 开始,所有 I/O 函数都需要在后台线程上进行。我建议您考虑使用AsyncTask连接到您的服务器并下载您需要的信息。这是android 文档的链接AsyncTask。基本思想很简单,任何 I/O 函数都在doInBackground()方法中。UI 的任何更新,例如在 a 上设置文本TextView,都发生在onPostExecute(). 阅读文档并尝试实现它。如果您仍然遇到错误,我们可以帮助您修复它。

于 2013-06-03T17:58:14.867 回答
0

只需在下面的链接中尝试此示例,并尝试以相同的方式进行操作。

http://android-am.blogspot.in/2012/10/android-login-screen-by-connecting-to.html

于 2013-06-03T18:10:03.753 回答
0

从你所说的在 index.php 中,

    } else if ($tag == 'get_data_tag'){
  // Request type is get data

    $Channel_id = $_POST['Channel_id'];
    $Temp_value = $_POST['Temp_value'];

//check for the value for the specified channel
    $value = $db->getDataByChannelId($Channel_id, $Temp_value);

//this is where the data should be sent to the app
    $response_data["success"] = 1;
    $response_data["Channel_id"] = $value["Channel_id"];
    $response_data["Temp_value"] = $value["Temp_value"];
    echo json_encode($response_data);
}

PHP 可能会返回一个解析错误(因为没有 if 的 else),然后 JSON 库(在您的 Java/Android 代码中)无法读取类似“Parse Error:”之类的内容作为 JSON,这将导致它抛出那个错误。

如果您只是从问题中省略了其他代码,请忽略这一点。

于 2013-06-03T17:57:37.217 回答