我有一个JSON数组,我有3个JSON对象。我想计算3的对象数量,但它给了我1.如果我不添加密钥“like
”,那么它可以工作。但在添加之后,它无法正常工作。
$JSON = '{"like":['
. '{"username":"suraj","password":"abc"},'
. '{"username":"don","password":"abc"},'
. '{"username":"rana","password":"abc"}'
. ']}';
$jsonInPHP = json_decode($JSON);
echo count($jsonInPHP);
答案 0 :(得分:2)
像这样传递第二个参数true
$jsonInPHP = json_decode($JSON,true);
echo count($jsonInPHP['like']);
答案 1 :(得分:1)
你的json代表一个对象而不是一个数组。在你的对象中你有类似属性的数组,所以你需要像这样
count($jsonInPHP->like);
答案 2 :(得分:1)
这是因为在json解码你的字符串之后,你得到一个属性(like
)(或带有一个带有键like
的元素的数组)的对象。
您希望以两种方式计算此属性(或键)的大小:
// if $jsonInPHP is array
echo count($jsonInPHP['like']);
// if $jsonInPHP is object
echo count($jsonInPHP->like);