当尝试发送数组时,我知道数组包含数据,因为我检查了var_dump,json_encode不发送任何数据。 这是我的代码:
for($i=0;$i<count($dados_atividades)-1;$i++)
{
$arr[$i+1]['Descricao'] = $dados_atividades[$i]['Descricao'];
$arr[$i+1]['DataInicioPrevista'] = $dados_atividades[$i]['DataInicioPrevista'];
$arr[$i+1]['DataConclusaoPrevista'] = $dados_atividades[$i]['DataConclusaoPrevista'];
}
if(count($arr)>0) {
echo json_encode($arr);
}else{
$arr = array();
$arr[0]['Descricao'] = 'N/A';
echo json_encode($arr);
}
这是我的代码var_dump:
for($i=0;$i<count($dados_atividades)-1;$i++)
{
$arr[$i+1]['Descricao'] = $dados_atividades[$i]['Descricao'];
$arr[$i+1]['DataInicioPrevista'] = $dados_atividades[$i]['DataInicioPrevista'];
$arr[$i+1]['DataConclusaoPrevista'] = $dados_atividades[$i]['DataConclusaoPrevista'];
}
if(count($arr)>0) {
var_dump($arr);
echo json_encode($arr);
}else{
$arr = array();
$arr[0]['Descricao'] = 'N/A';
echo json_encode($arr);
}
如图所示,该数组包含数据:
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
要扩展上一个答案,您需要将数组数据编码为UTF-8
function utf8_converter($array)
{
array_walk_recursive($array, function(&$item, $key){
if(!mb_detect_encoding($item, 'utf-8', true)){
$item = utf8_encode($item);
}
});
return $array;
}
答案 1 :(得分:0)
不是每次循环回显json,而是在循环中构建数组,然后在json完成后回显json。
浏览器希望看到对AJAX调用的一个回复,而不是多个回复。
Malformed UTF-8 characters, possibly incorrectly encoded
听起来您收到了$json_string = json_encode($arr,JSON_UNESCAPED_UNICODE);
错误,因此请更改此行
// app.hbs
{{x-tree data=treeStructure}}
// x-tree.hbs
{{#each data.children as |child|}}
{{component child.type data=child}}
{{/each}}