【发布时间】:2013-06-26 01:48:08
【问题描述】:
我正在用 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 格式都正确。
我created a gist 的 JSON 文件示例正确加载到 $all_related_users_obj 和一个没有。
使用json_last_error() 函数我收到JSON_ERROR_UTF8 说明JSON 包含Malformed UTF-8 characters, possibly incorrectly encoded。但是,我仍然找不到错误。
非常感谢您的帮助。
【问题讨论】:
-
我不是阅读所有 JSON。让他们通过差异工具。
-
@IgnacioVazquez-Abrams 你的意思是用 gist 以外的东西发布它们吗?我也试过jsonformatter.curiousconcept.com。
-
@IgnacioVazquez-Abrams 我使用了您提供的链接,但 JSON 值不同,因此这表明很多事情都不同。此外,如果我将一个给我带来问题的 JSON 字符串硬编码到我的 php 中,它
json_decode()s 正确...