【发布时间】:2021-03-05 12:39:30
【问题描述】:
我正在使用 ajax 来获取 json 响应并填充我的数据表,但是由于某种原因,json 中的一些随机值有换行符。在数据库中,可以说“每 100 m 行 90 g”,但它在 json 中输出,如下所示。
所有其他行都很好,这是我制作 json 对象的方法。
for($i = 0; $i < $numRows; $i++) {
$chemicals = getPestsChemicals($connection, $rows[$i]['code']);
$chemNames = '';
foreach($chemicals as $chem) {
$chemNames .= $chem['chemical'].'<br>';
}
$mrls = getPestsMrls($connection, $rows[$i]['code']);
$mrlNames = '';
foreach($mrls as $mrl) {
$mrlNames .= (strlen($mrl['mrl']) == 1 ? $mrl['mrl'].".0" : $mrl['mrl']).'<br>';
}
if($i != $numRows-1) {
$body .= '
{
"crop": "'.$rows[$i]['crop'].'",
"diseases": "'.$rows[$i]['pest_name'].'",
"chemical": "'.$chemNames.'",
"product": "'.$rows[$i]['product']." ".($rows[$i]['footnote'] != NULL ? '<sup class=\"text-danger font-weight-bold\">'.$rows[$i]['footnote'].'</sup>' : NULL ).'",
"rate": "'.$rows[$i]['rate'].'",
"max_no": "'.$rows[$i]['max_no'].'",
"hi": "'.$rows[$i]['hi'].'",
"mrl": "'.$mrlNames.'",
"pcs_no": "'.($rows[$i]['pcs_no'] == 0 ? 'DR' : '0'.$rows[$i]['pcs_no']).'",
"supplier": "'.$rows[$i]['supplier'].'",
"use_by_date": "'.$rows[$i]['use_by_date'].'"
},
';
} else {
$body .= '
{
"crop": "'.$rows[$i]['crop'].'",
"diseases": "'.$rows[$i]['pest_name'].'",
"chemical": "N/A",
"product": "'.$rows[$i]['product']." ".($rows[$i]['footnote'] != NULL ? '<sup class=\"text-danger font-weight-bold\">'.$rows[$i]['footnote'].'</sup>' : NULL).'",
"rate": "'.$rows[$i]['rate'].'",
"max_no": "'.$rows[$i]['max_no'].'",
"hi": "'.$rows[$i]['hi'].'",
"mrl": "N/A",
"pcs_no": "'.($rows[$i]['pcs_no'] == 0 ? 'DR' : '0'.$rows[$i]['pcs_no']).'",
"supplier": "'.$rows[$i]['supplier'].'",
"use_by_date": "'.$rows[$i]['use_by_date'].'"
}
';
}
}
我尝试将相关行包含在 strval 或 json_encode 中,但没有成功。这也是它在数据库中的样子
【问题讨论】:
-
你的json有可能被chunked-encoding编码
-
@Luuk 我该如何反驳?
-
如果它在数据中,您的数据库管理器会显示换行符吗?如果您以字节形式获取存储的数据,它将揭示其中的实际内容。
-
@BranOIE:如果这确实是问题所在,您必须阅读链接中的链接以了解发生了什么。之后可能是您的网络服务器发生了变化,但是....搜索是您的朋友,请参阅:stackoverflow.com/questions/14315224/…
-
@Luuk 分块编码将应用于 HTTP 级别,它不应影响再次解码后实际数据的样子。