0

我正在用 php 构建一个公共 API,并且遇到了一个非常奇怪的问题json_decode()。我带来了一大串 JSON,我正在动态形成并且在这个过程中遇到了很多麻烦。我正在尝试像这样加载 JSON 对象:

$all_related_users_obj = json_decode($this->get_related_users_raw_JSON($user_id));
if(is_object($all_related_users_obj)) echo $all_related_users_obj->tags[0]->first_name;
else echo "NOT AN OBJECT";

我发现这适用于$user_id我传递的大约一半的整数,但不适用于其余的整数。通常我会假设我的 JSON 只是格式错误,但根据JSONlint,我的所有 JSON 格式都正确。

创建了一个 JSON 文件示例的要点,该示例可以正确加载$all_related_users_obj,而不能正确加载。

使用该json_last_error()函数,我收到JSON_ERROR_UTF8JSON 包含Malformed UTF-8 characters, possibly incorrectly encoded. 但是,我仍然找不到错误。

非常感谢您的帮助。

4

1 回答 1

3

在您的“不工作”示例中,深埋在 JSON 中的关键之一是:

"city":"Rezé",

这包含非 ASCII 字符é。很有可能 JSON 是以非 UTF8 编码(可能是 ISO8859-1)的形式提交的,这会产生json_decode()错误。

于 2013-06-26T02:22:21.233 回答