我正在尝试从Statcounter API获取json数据。
我有以下内容:
$query = makeQuery("2292634", "demo_user", "statcounter", "visitor", "");
echo $query . "<br>";
$response = file_get_contents($query, true);
$data = json_decode($response, true);
echo $data['sc_data']['log_visits'];
我知道查询是正确的,我知道$response
填充了未格式化的json。问题是访问数组并拉出值。
以下是它给我的无格式json的前几行。
此链接仅工作15分钟,如果您想查看原始json,我可以生成一个新链接。
{"@attributes":{"status":"ok"},"sc_data":[{"log_visits":"1","entries_in_visit":"2","entry_t":"2014-04-29 17:57:33","entry_url":"http:\/\/www.guitar-online.com\/en\/","entry_title":"Learn how to play the guitar: tutorials, guitar
显然我没有以正确的方式访问数组...但是我还没有找到使它工作的语法!
感谢您的帮助。
答案 0 :(得分:0)
查看您的数据,sc_data
是一个包含嵌套JSON对象的数组,因此您应该能够迭代该数组以按需要读取数据:
echo $data['sc_data'][0]['log_visits'];
上面的代码将访问数组sc_data
的第一个元素并打印log_visits
的值
如果您使用JSON {"field":['a','b','c']}
,则可以'a'
访问field[0]
。
数组的元素可以是任何有效值,即
在你的情况下,它是对象,你访问该对象的方式与访问任何其他数组元素的方式相同 - 通过索引号(JSON没有类型"key" => "value"
的关联数组)