我只是测试从PHP文档(http://au2.php.net/manual/en/function.json-decode.php)PHP json_decode返回空数组
这里是我的代码此示例:
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; echo json_decode($json, true), '<br />';?>
,但它只是返回一个空数组。
不知道为什么...一直在四处搜索,但没有找到解决方案。
请帮忙!
我只是测试从PHP文档(http://au2.php.net/manual/en/function.json-decode.php)PHP json_decode返回空数组
这里是我的代码此示例:
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; echo json_decode($json, true), '<br />';?>
,但它只是返回一个空数组。
不知道为什么...一直在四处搜索,但没有找到解决方案。
请帮忙!
你不应该使用回声,因为它是一个数组。使用的print_r或后续代码var_dump。它工作正常
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
print_r(json_decode($json, true));
输出:
Array
(
[a] => 1
[b] => 2
[c] => 3
[d] => 4
[e] => 5
)
不,它不会返回一个空数组。
用echo
打印数组只是打印一个字符串"Array()"
。
使用print_r
或var_dump
来获得变量的结构。
在较新的PHP中,它也会在数组上使用echo
时发出通知(“数组到字符串转换”),所以您不应该这样做。您提到的手册更改为print_r
。
它工作正常,但您使用错误的方法来显示数组。
来显示阵列不能使用echo
,但你需要使用var_dump
它工作正常,为别人提,但是当你打印阵列被转换成字符串,这意味着只有字符串“阵列”将成为打印而不是实际的阵列数据。您应该使用print_r()
,var_dump()
,var_export()或类似的调试数组。
如果启用通知,您将看到:
PHP Notice: Array to string conversion in ...
的例子中,你链接的用途也为的var_dump同样的原因。
的var_dump在php5.4
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
您可以验证漂亮打印在以下 网站:http://jsonlint.com/
你必须使用一个PHP “json_decode()” 函数来解码JSON编码数据。 基本上json_decode()函数将JSON数据转换为PHP数组。
语法:json_decode(数据,dataTypeBoolean,深度,选项)
数据: - 要在PHP解码JSON数据。
dataTypeBoolean(可选): - 布尔值,使函数返回一个PHP关联数组,如果设置为“真”,或者如果省略该参数返回一个PHP stdClass的对象或将其设置为“假”。这两种数据类型都可以像数组一样访问,并使用基于数组的PHP循环进行分析。
深度: - 可选递归限制。使用整数作为此参数的值。
选项: - 可选的JSON_BIGINT_AS_STRING参数。
现在来到你的代码
$json_string = '{"a":1,"b":2,"c":3,"d":4,"e":5}' ;
指定一个有效的JSON数据中单QUOT的( '')作为 JSON字符串已经有双quots一个变量$ json_string。
// here i am decoding a json string by using a php 'json_decode' function, as mentioned above & passing a true parameter to get a PHP associative array otherwise it will bydefault return a PHP std class objecy array.
$json_decoded_data = json_decode($json_string, true);
// just can check here your encoded array data.
// echo '<pre>';
// print_r($json_decoded_data);
// loop to extract data from an array
foreach ($json_decoded_data as $key => $value) {
echo "$key | $value <br/>";
}
验证JSON文件首先是一个非常好的建议 – wranvaud
它使空对象{}为空数组[]。但你的指令提供第二个参数为真,它确实有效。所以1+从我身上。 –