【问题标题】:json_encode not working for a nested arrayjson_encode 不适用于嵌套数组
【发布时间】:2020-11-20 03:02:53
【问题描述】:

我一直在尝试将 2 个查询的结果作为 json 返回。 var_dump($data) 工作但不能 json_encode 返回空/不工作。

$data = array();

$array_articles = array();
$sql_articles = $mysqli->query("select something something");
while ( $article = $sql_articles->fetch_assoc() ){
  $array_articles[] = $article;
}

$array_posts = array();
$sql_posts = $mysqli->query("select something something");
while ( $post = $sql_posts->fetch_assoc() ){
  $array_posts[] = $post;
}

$data = array(
  'top_articles' => $array_articles,
  'top_posts' => $array_posts
);

echo json_encode( $data );

【问题讨论】:

  • 请将 var_dump($data) 和 var_dump(json_encode($data)) 粘贴到帖子中。
  • json_last_error()json_last_error_msg(),在失败的 json_encode() 返回后调用什么?
  • @Aashishgaba 它也返回空白。
  • @Martin 它返回消息Malformed UTF-8 characters, possibly incorrectly encoded.
  • 请注意,在标题中使用大写字母相当于大喊大叫。

标签: php mysql arrays json multidimensional-array


【解决方案1】:

你在 json_encode 中输入的所有东西都必须是 UTF8。我认为有些内容不是 UTF-8 编码的。

您可以将extra parameters 添加到json_encode。

你可以这样试一试: echo json_encode($data, JSON_INVALID_UTF8_IGNORE | JSON_PARTIAL_OUTPUT_ON_ERROR)

【讨论】:

    猜你喜欢
    • 2018-10-10
    • 1970-01-01
    • 2012-07-29
    • 2015-05-03
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多