有一个奇怪的行为json_encode和json_decode我不能找到一个解决方案:
我的php应用程序调用php Web服务.webservice返回如下所示的json:
var_dump($foo):
string(62) "{"action":"set","user":"123123123123","status":"OK"}"
Run Code Online (Sandbox Code Playgroud)
现在我想在我的应用程序中解码json:
$data = json_decode($foo, true)
Run Code Online (Sandbox Code Playgroud)
但它返回NULL:
var_dump($data):
NULL
Run Code Online (Sandbox Code Playgroud)
我用的是php5.来自webservice的响应的Content-Type :( "text/html; charset=utf-8"也尝试使用"application/json; charset=utf-8")
可能是什么原因?
使用PHP5(cgi)从文件系统输出模板文件,并且有问题吐出原始HTML.
private function fetch($name) {
$path = $this->j->config['template_path'] . $name . '.html';
if (!file_exists($path)) {
dbgerror('Could not find the template "' . $name . '" in ' . $path);
}
$f = fopen($path, 'r');
$t = fread($f, filesize($path));
fclose($f);
if (substr($t, 0, 3) == b'\xef\xbb\xbf') {
$t = substr($t, 3);
}
return $t;
}
Run Code Online (Sandbox Code Playgroud)
即使我已经添加了BOM修复程序,我仍然遇到Firefox接受它的问题.你可以在这里看到一个实时的副本:http://ircb.in/jisti/(如果你想查看它,我在http://ircb.in/jisti/home.html投掷的模板文件)
知道如何解决这个问题吗?O_O
我有一个非常奇怪的问题.
我有一个JSON Web服务.
当我在这个网站上查看http://www.freeformatter.com/json-formatter.html#ad-output
一切都好.
但是当我用这段代码加载我的JSON时:
$data = file_get_contents('http://www.mywebservice');
if(!empty($data))
{
$obj = json_decode($data);
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - JSON_ERROR_NONE';
break;
case JSON_ERROR_DEPTH:
echo ' - JSON_ERROR_DEPTH';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - JSON_ERROR_STATE_MISMATCH';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - JSON_ERROR_CTRL_CHAR';
break;
case JSON_ERROR_SYNTAX:
echo "\r\n\r\n - SYNTAX ERROR \r\n\r\n";
break;
case JSON_ERROR_UTF8:
echo ' - JSON_ERROR_UTF8';
break;
default:
echo ' - Unknown erro';
break;
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:SYNTAX ERROR
什么都没有完全帮助.
这是一场噩梦.
我看到用PHP 5.5我可以使用这个函数:http://php.net/manual/en/function.json-last-error-msg.php
(但我还没有成功安装PHP …
我有一个格式化像JSON的文本文件,但在打印/查看友好的格式,我想给字符串转换为有效的JSON.基本上,我想用读取文件PHP5并调用json_decode反序列化的字符串.但是,json_decode无法解析"打印友好"的JSON字符串.
我收到错误4 JSON无效或格式错误.
它看起来像其他人也有类似的问题,因为我:PHP json_decode()返回NULL与有效的JSON?
我使用记事本++写的JSON文件.
那么,我该怎么转换呢
从:
{
"data": [
{
"thumbImg": "thumbImg",
"street": "street",
"city": "Fort Worth",
"state": "Texas",
"zip": "76192-0001",
"url": "url"
}
]
}
Run Code Online (Sandbox Code Playgroud)
至:
{"data":[{"thumbImg": "thumbImg", "street": "street", "city": "Fort Worth", "state": "Texas", "zip": "76192-0001", "url": "url"}]
Run Code Online (Sandbox Code Playgroud)
我甚至试过做以下事情:
<?php
$filename = "links.json";
$file = fopen($filename, "r");
$lines = file($filename);
$data = "";
;
foreach ($lines as $line_num => $line) {
$formatted = trim($line);
$formatted = str_replace("\r", "", $formatted);
$formatted = …Run Code Online (Sandbox Code Playgroud)