我正在尝试将值从数据库发送到 Android 应用程序。我从教程开始,到了这里,但我得到:“错误解析数据 org.json.jsonexception 在字符 0 处输入结束”我可能还有其他错误,但这是我在运行应用程序时遇到的第一个错误.
编辑:我不能删除这个问题,但它不再相关。代码有错误,我同时纠正了。答案虽然有帮助,但不是解决方案。这可能是我的错,因为这个问题的表述很糟糕。
发生错误是因为没有接收到要解析的 JSON 数据。这可能是因为您尝试从您的onCreate()
方法中连接到 Internet。从 API 11 开始,所有 I/O 函数都需要在后台线程上进行。我建议您考虑使用AsyncTask
连接到您的服务器并下载您需要的信息。这是android 文档的链接AsyncTask
。基本思想很简单,任何 I/O 函数都在doInBackground()
方法中。UI 的任何更新,例如在 a 上设置文本TextView
,都发生在onPostExecute()
. 阅读文档并尝试实现它。如果您仍然遇到错误,我们可以帮助您修复它。
只需在下面的链接中尝试此示例,并尝试以相同的方式进行操作。
http://android-am.blogspot.in/2012/10/android-login-screen-by-connecting-to.html
从你所说的在 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,这将导致它抛出那个错误。
如果您只是从问题中省略了其他代码,请忽略这一点。