[{
"ID": 1,
"datum": "2016-02-04 14:20:59",
"nummer": "+467123123951",
"text": "Svar..."
}, {
"ID": 2,
"datum": "2016-02-05 10:11:36",
"nummer": "+467123123951",
"text": "BLOOG STOPP"
}]
这是我得到的用途,但我在使用php中的decode-function将其转换为数组时遇到了问题。这个json-string格式不正确吗?
如何生成php表或打印得很好。
非常感谢任何帮助,谢谢。
编辑:我的php版本是5.6根据JSONLint,JSON字符串似乎是有效的。我使用以下php代码从我的服务提供者($ url)获取JSON:
$in=file_get_contents($url."/in/?key=xxxxxxxxx");
$json = json_decode($in);
echo json_encode($json, JSON_PRETTY_PRINT);
和响应标题:
连接:关闭, 内容编码:gzip, 内容长度:212, 内容类型:text / html, 日期:2016年2月6日星期六07:25:07 GMT, 服务器:nginx, 变化:接受编码,用户代理
这(Content-Encoding:gzip)是否意味着响应被压缩了?
答案 0 :(得分:1)
您的JSON示例有效。 json_decode()在我的例子中起作用:
UIViewController
我认为你剪切了文字,也许你的字符串不是utf-8编码的? 只要有特殊字符,json_encode()/ json_decode()就需要utf-8编码。
更新:我不确定内容编码 - 以下是有关此主题的更多信息:Transfer-Encoding: gzip vs. Content-Encoding: gzip 但是在执行json_decode()之前,您是否验证字符串是UTF-8编码的?
您可以在$json = '[{ "ID": 1, "datum": "2016-02-04 14:20:59", "nummer": "+467123123951", "text": "Svar..." }, { "ID": 2, "datum": "2016-02-05 10:11:36", "nummer": "+467123123951", "text": "BLOOG STOPP" }]';
echo "<pre>";
print_r(json_decode($json));
echo"</pre>";
上更改资源,只输出一个非常简单的JSON字符串,例如$url."/in/?key=xxxxxxxxx"
如果json_decode现在有效,你知道它不是关于gzip的,如果它没有,你知道它不是关于UTF-8(因为字符串没有特殊的字符)。