android — JSONException: значение & lt;! -? php типа java.lang.String не может быть преобразовано в JSONObject

Я хочу использовать данные JSON, сгенерированные файлом PHP (news.php) с конца Android. У меня есть файл PHP, который, кажется, генерирует данные JSON правильно, и моя сторона Android работает нормально. Проблема в том, что я получаю вышеупомянутое исключение.

Что меня действительно озадачивает, так это то, что если я скопирую вывод сведений JSON, созданный файлом PHP, в отдельный файл и сохраню его как файл JSON (например, news.json), мое приложение для Android сможет использовать данные JSON, но если я переизберу это к файлу php (news.php) я получаю выше исключение.

Я рассмотрел другие возможные повторяющиеся вопросы, но они не совсем соответствуют моим собственным. Любая помощь с благодарностью.

У меня есть файл php, который кодирует в формате JSON:

<?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:

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’:

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"}]}

0

Решение

Благодаря josef.adamcik, я использовал Log.d («tag», result), чтобы получить журнал исключения, и он подчеркнул, что он действительно читает файл php, который начинается с » <!-- ».

Файл ‘db_connection.php’, включенный в файл news.php, содержит раздел, начинающийся с <!--comments --> и после удаления этого раздела все работало хорошо.

РЕДАКТИРОВАТЬ:

Я использовал <!--comments--> в php для многострочных комментариев вместо /* comments */

Поскольку я использовал Brackets IDE, он выделил серым цветом <!--comments--> раздел в любом случае, и я упустил из виду, что это было неправильно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector