【发布时间】:2017-08-16 10:56:52
【问题描述】:
我想使用 Android 端的 PHP 文件(news.php)生成的 JSON 数据。我有一个似乎可以正确生成 JSON 数据的 PHP 文件,并且我的 Android 端工作正常。问题是我得到了上述异常。
真正让我感到困惑的是,如果我将 PHP 文件生成的 JSON 详细信息输出复制到单独的文件中并将其保存为 JSON 文件(例如 news.json),我的 Android 应用程序能够使用 JSON 数据,但是如果我将它重新指向 php (news.php) 文件,我会收到上述异常。
我查看了其他可能重复的问题,但它们不太适合我自己的问题。非常感谢任何帮助。
我有一个编码为 JSON 格式的 php 文件:
<?php
include("includes/db_connection.php");
if (isset($_GET['latest_news'])) {
$limit = $_GET['latest_news'];
$query = "SELECT * FROM tbl_news_category c, tbl_news n WHERE c.cid = n.cat_id ORDER BY n.nid DESC LIMIT $limit";
$result = mysqli_query($con, $query);
}
$total_records = mysqli_num_rows($result);
if ($total_records >= 1) {
while ($link[] = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$set['RecentNews'] = $link;
}
}
echo $val = str_replace('\\/', '/', json_encode($set,JSON_UNESCAPED_UNICODE));
//}
?>
然后我有一个“Android JSON 类”代码 sn-p:
try {
JSONObject mainJson = new JSONObject(result);
JSONArray jsonArray = mainJson.getJSONArray(Constant.CATEGORY_ARRAY_NAME);
JSONObject objJson = null;
for (int i = 0; i < jsonArray.length(); i++) {
objJson = jsonArray.getJSONObject(i);
ItemLatest objItem = new ItemLatest();
objItem.setCId(objJson.getString(Constants.CATEGORY_ITEM_CID));
objItem.setCategoryName(objJson.getString(Constants.CATEGORY_ITEM_NAME));
//objItem.setCategoryImage(objJson.getString(Constants.CATEGORY_ITEM_IMAGE));
objItem.setCatId(objJson.getString(Constants.CATEGORY_ITEM_CAT_ID));
objItem.setNewsImage(objJson.getString(Constants.CATEGORY_ITEM_NEWSIMAGE));
objItem.setNewsHeading(objJson.getString(Constants.CATEGORY_ITEM_NEWSHEADING));
objItem.setNewsDescription(objJson.getString(Constants.CATEGORY_ITEM_NEWSDESCRI));
objItem.setNewsDate(objJson.getString(Constants.CATEGORY_ITEM_NEWSDATE));
arrayOfLatestnews.add(objItem);
}
}
catch (JSONException exc) {
exc.printStackTrace();
}
Android 'Constants class' 代码 sn-p:
public class Constants implements Serializable {
public static final String SERVER_URL = "http://192.100.1.1:4000/news";
public static final String LATEST_URL = "http://192.100.1.1:4000/news/news.php?latest_news=10";
public static final String CATEGORY_ARRAY_NAME = "RecentNews";
public static final String CATEGORY_NAME = "category_name";
public static final String CATEGORY_CID = "cid";
public static final String CATEGORY_IMAGE = "category_image";
...
}
编辑:
JSON 输出:
{"RecentNews":[{"cid":"7","category_name":"World","category_image":"91771_world.jpg","status":"1","nid":"9","cat_id":"7","news_heading":"World Sample News Heading","news_description":"
World Sample News
\r\n","news_image":"88702_IMG_5038.JPG","news_date":"08-16-2017","news_status":"1"},{"cid":"12","category_name":"IT","category_image":"98162_IMG_1303.JPG","status":"1","nid":"8","cat_id":"12","news_heading":"IT Sample News Heading","news_description":"
IT Sample News
\r\n","news_image":"24966_IMG_5018.JPG","news_date":"08-03-2017","news_status":"1"},{"cid":"5","category_name":"Business","category_image":"4591_download.jpg","status":"1","nid":"7","cat_id":"5","news_heading":"Business Sample News Heading","news_description":"
Business Sample News
\r\n","news_image":"13015_IMG_5017.JPG","news_date":"08-02-2017","news_status":"1"},{"cid":"4","category_name":"Sports","category_image":"22814_sports.jpg","status":"1","nid":"6","cat_id":"4","news_heading":"Sports Sample News Heading","news_description":"
Sports Sample News
\r\n","news_image":"72021_IMG_5016.JPG","news_date":"08-01-2017","news_status":"1"}]}
【问题讨论】:
-
我已更新问题并添加了 JSON 输出数据
-
您确定您发布的 json 输出与应用程序收到的输出相同吗?您收到的一条错误消息说结果字符串以“