当解码的内容返回为count = 2而不是1时,有人可以告诉我吗?
我认为解码数组是否在那里它应该是1的计数,因为它内部没有多个数组对象。
示例:
// Count 1
Array ( [chat_id] => 414 [inserted] => 1500038898 )
// Count 2
Array (
[0] => Array ([chat_id] => 414 [inserted] => 1500038898)
[1] => Array ([chat_id] => 415 [inserted] => 1500038898)
)
文本文件内容:
{"chat_id":414,"inserted":1500038898}
代码:
// Get file contents
$fileContents = json_decode(file_get_contents($file), true);
if($fileContents !== NULL){
// Push decoded contents to temp array
$decoded_data = $fileContents;
print_r(count($decoded_data));
}
解码:
Array ( [chat_id] => 414 [inserted] => 1500038898 )
答案 0 :(得分:3)
Dude,正如我在my first comment中告诉你的那样,它不是JSON中的数组。好的,所以JSON数据不符合您输入的要求。将您的JSON数据更改为:
[{"chat_id":414,"inserted":1500038898}]
这应该会为您1
而不是2
。以上是单次入场所需的内容。两个记录的示例,如您所希望的可能如下所示:
[{"chat_id":414,"inserted":1500038898}, {"chat_id":415,"inserted":1500038898}]
我希望我能解释清楚。你遗失了[]
。它应该是一个对象数组[{}]
而不仅仅是一个对象{}
。