如何使用php打印json响应
我正在用php构建一个SimilWeb服务。此web服务可以读取数据库表中的所有记录,并返回json格式的记录列表 这是我的getArticoli.php文件的代码:如何使用php打印json响应,php,mysql,json,utf-8,Php,Mysql,Json,Utf 8,我正在用php构建一个SimilWeb服务。此web服务可以读取数据库表中的所有记录,并返回json格式的记录列表 这是我的getArticoli.php文件的代码: <?php require_once('lib/connection.php'); $query_Articolo = "SELECT CodArticolo,NomeArticolo,Quantita,CodiceBarre, PrezzoAttuale, PrezzoRivenditore,PrezzoIngrosso
<?php
require_once('lib/connection.php');
$query_Articolo = "SELECT CodArticolo,NomeArticolo,Quantita,CodiceBarre, PrezzoAttuale, PrezzoRivenditore,PrezzoIngrosso
FROM VistaArticoli ";
$result_Articoli = $connectiondb->query($query_Articolo);
$answer = array ();
while ($row_Articoli = $result_Articoli->fetch_assoc()) {
$answer[] = ["id" => $row_Articoli['CodArticolo'],
"nome" => '"' . $row_Articoli['NomeArticolo'] . '"',
"quantita" => $row_Articoli['Quantita'],
"codiceBarre" => $row_Articoli['CodiceBarre'],
"codartFornitore" => $row_Articoli['CodiceBarre'],
"PrezzoAttuale" => $row_Articoli['PrezzoAttuale'],
"prezzoRivenditore" => $row_Articoli['prezzoRivenditore'],
"prezzoIngrosso" => $row_Articoli['prezzoIngrosso']];
}
//echo "fine";
echo json_encode($answer);
?>
如果从响应中删除此字段,则可以正确地看到json响应
此字段中有a-z/0-9中的任意字符和特殊字符,如“/*?-和其他”
这些特殊字符可能会导致json答案的任何错误吗
编辑
我的查询限制为5,以下是回复:
首先,删除那些无关的引号字符。你不需要它们,它们会在路上伤害你:
while ($row_Articoli = $result_Articoli->fetch_assoc()) {
$answer[] = [
"id" => $row_Articoli['CodArticolo'],
"nome" => $row_Articoli['NomeArticolo'],
"quantita" => $row_Articoli['Quantita'],
"codiceBarre" => $row_Articoli['CodiceBarre'],
"codartFornitore" => $row_Articoli['CodiceBarre'],
"PrezzoAttuale" => $row_Articoli['PrezzoAttuale'],
"prezzoRivenditore" => $row_Articoli['prezzoRivenditore'],
"prezzoIngrosso" => $row_Articoli['prezzoIngrosso']
];
}
然后,按原样运行查询(没有限制
),然后运行echo json_last_error_msg()代码>,这可能会提示您发生了什么
另外,由于您的数据库是意大利语的,所以它的编码可能不是UTF-8<代码>json_编码
需要UTF-8编码数据。因此,在对数组进行json编码之前,您可以尝试对文章名称进行utf8\u编码
"nome" => utf8_encode($row_Articoli['NomeArticolo']),
看看你能得到什么
将DB字符集更改为“utf8mb4”也可以做到这一点,通常建议这样做。首先,删除那些无关的引号字符。你不需要它们,它们会在路上伤害你:
while ($row_Articoli = $result_Articoli->fetch_assoc()) {
$answer[] = [
"id" => $row_Articoli['CodArticolo'],
"nome" => $row_Articoli['NomeArticolo'],
"quantita" => $row_Articoli['Quantita'],
"codiceBarre" => $row_Articoli['CodiceBarre'],
"codartFornitore" => $row_Articoli['CodiceBarre'],
"PrezzoAttuale" => $row_Articoli['PrezzoAttuale'],
"prezzoRivenditore" => $row_Articoli['prezzoRivenditore'],
"prezzoIngrosso" => $row_Articoli['prezzoIngrosso']
];
}
然后,按原样运行查询(没有限制
),然后运行echo json_last_error_msg()代码>,这可能会提示您发生了什么
另外,由于您的数据库是意大利语的,所以它的编码可能不是UTF-8<代码>json_编码
需要UTF-8编码数据。因此,在对数组进行json编码之前,您可以尝试对文章名称进行utf8\u编码
"nome" => utf8_encode($row_Articoli['NomeArticolo']),
看看你能得到什么
将DB字符集更改为“utf8mb4”也可以做到这一点,这通常是推荐的。为什么不能只使用
“nome”=>$row_Articoli['nometarticolo']
并保留json解析器转义?你的方法是对的,但我认为主要问题是这个'。还有这个'。“'in'。$row_Articoli['nometicolo'.”'您是否尝试启用错误报告?这可能会帮助您理解为什么JSON不能被构造。@marian0,第一次,在我试图更改此代码以修复我的问题之后,我写了“nome”=>$row_Articoli['nomatarticolo']。但不起作用您需要删除“Article Name”周围的引号。为什么您不能只使用“”nome“=>$row\u Articoli['nometarticolo']
”并让json解析器转义?您的方法是对的,但我认为主要问题是这个“.”和这个“.”在“$row\u Articoli['nometarticolo']”中“.”您尝试过启用错误报告吗?这可能会帮助您理解为什么JSON不能被构造。@marian0,第一次,在我试图更改此代码以修复我的问题之后,我写了“nome”=>$row_Articoli['nomatarticolo']。但是不行,你需要删除“文章名”周围的引号。谢谢。你的代码可以工作。现在对于我的数据库,这个字符集被重新命名为意大利语???谢谢将其设置到utf8mb4
。看看这个:谢谢你。你的代码可以工作。现在对于我的数据库,这个字符集被重新命名为意大利语???谢谢将其设置到utf8mb4
。看看这个: