0

我正在从以以下格式返回数据的闭路电视系统中检索事件,

[ 
{ alarmimage : '060429.0', timestamp : '1370099686.721', date : '2013-06-01', time : '16:14:46', events : 'VM' }, 
{ alarmimage : '060428.0', timestamp : '1370097952.081', date : '2013-06-01', time : '15:45:52', events : 'VM' }, 
{ alarmimage : '060427.0', timestamp : '1370097946.972', date : '2013-06-01', time : '15:45:46', events : 'VM' }, 
{ alarmimage : '060426.0', timestamp : '1370084199.546', date : '2013-06-01', time : '11:56:39', events : 'VM' }, 
{ alarmimage : '060425.0', timestamp : '1370083407.462', date : '2013-06-01', time : '11:43:27', events : 'VM' } 
] 

我只是get_data()用来返回上述内容,循环遍历每个这些值以显示为事件/图像列表的最有效方法是什么?

4

3 回答 3

1

那是一种称为 json(javascript 对象表示法)的格式。

你可以很简单地解析它json_decode(),见: http: //php.net/manual/en/function.json-encode.php

于 2013-06-01T16:58:24.620 回答
1

由于您将从 CCTV 系统获得的密钥名称不在引号中,因此该字符串不是有效的 JSON 字符串。json_decode如果不执行一些丑陋的字符串修改,您将无法解析它。

在寻找替代方案时,我找到了这个答案:https ://stackoverflow.com/a/6250894/1560865

答案建议使用 JSON 是 YAML 的子集这一事实。由于 YAML 对引号的要求不那么严格,因此您应该能够使用 YAML 解析器来解析您的字符串。

于 2013-06-03T10:45:38.607 回答
0

与这样的东西一起使用json_decode()

<?php

$encdata = getTheData(); // your method to get the string
$data = json_decode($encdata);
foreach($data => $row)
{ 
    // access the row members like this:
    // $row->alarmimage
    // $row->timestamp 
    // $row->date
    // ...
 }

 ?>
于 2013-06-01T17:01:58.717 回答