Я разрабатываю приложение для Android, и я новичок во всем этом. Мои данные хранятся в MySQL на веб-сервере, и я использую сценарий PHP для чтения данных из MySQL и преобразования их в строку JSON, которая затем вызывается объектом Android JSON в моем мобильном приложении. Все работало нормально, пока в моей базе данных MySQL не было нескольких абзацев. Когда я читаю данные MySQL с помощью PHP и преобразовываю их в строку JSON, все абзацы становятся одним большим абзацем. Android-приложение правильно читает данные, но проблема в том, что мне все еще нужно прочитать несколько абзацев, хранящихся в базе данных MySQL. Может ли кто-нибудь направить меня в правильном направлении или разобраться в этом? Помощь будет оценена.
Ниже приведены файлы сценариев на PHP, которые я использую для чтения данных MySQL и преобразования их в строку JSON.
Файл подключения:
<?php
$db_name = "myDbName";
$mysql_username = "db_user";
$mysql_password = "db_password";
$server_name = "serverName";
$conn = mysqli_connect($server_name, $mysql_username, $mysql_password, $db_name);$sSQL= 'SET CHARACTER SET utf8';
mysqli_query($conn, $sSQL) or die ('Can\'t charset in DataBase');
if(!$conn)
{
die("Connection failed:" . mysqli_error($conn));
}
?>
JSON файл покрытия:
<?php
require "conn.php";
$sql_qry = "SELECT * FROM tabITArticles;";
$result = mysqli_query($conn, $sql_qry);
$response = array();
while($row = mysqli_fetch_array($result)){
array_push($response, array("id"=>$row[0],"title"=>$row[1],"author"=>$row[2],"content"=>$row[3],"image"=>$row[4],"date"=>$row[5]));
}
echo json_encode(array("server_response"=>$response));
mysqli_close($conn);
?>
Есть несколько вещей, которые вы можете сделать, чтобы сохранить абзацы.
При извлечении информации из базы данных вы можете сделать:
$arr = explode(PHP_EOL, $row[3]);
Это разделит строку в массив, а затем вы можете передать ее. Затем вы получаете его в Android в виде массива.
Другой вариант — закодировать новые строки в php, используя такие комбинации, как \n
а также \r
,
$str= str_replace(PHP_EOL, '\n', $row[3]);
Затем в Android вы можете разбить строку и сохранить ее в массиве.
String[] str= stringfromjson.split("\n");
Других решений пока нет …