我需要你们帮帮我。我正在尝试将json响应解析为highcharts可以呈现为柱状图的内容。我找了又找,却一无所获。
这是一个在呈现图表之前json数据应该是什么样子的示例:
[
[1,12],
[2,5],
[3,18],
[4,13],
[5,7],
[6,4],
[7,9],
[8,10],
[9,15],
[10,22]
]下面是我的json响应:
{"col":["name","tot"],"grp":{"wkd":[["","0"],["id-1","0"],["id-2","0"],["id-3","0"],["id-4","0"],["id-5","0"],["id-6","0"],["id-7","0"]]},"Spec":{}}我需要从响应中得到的唯一信息是id-1到7以及它们的值。
我正在使用curl发送一个带有令牌和秘密的url的post请求。
这是代码的curl部分和json_decode:
$ch = curl_init($signedUrl);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLINFO_HEADER_OUT, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json',
'Accept-language: en-GB',
'Content-type: application/json',
'Content-length: ' . strlen($data_string)));
$json = curl_exec($ch);
print "RESPONSE BODY (as string (JSON)):<br/><br/>" . $json;
echo "<br><br>";
$data = json_decode($json, true);
curl_close($ch);我不知道如何解析json_decode之后的信息。我已经尝试了多个foreach字符串,但没有任何运气。有人能帮我这个忙吗?
关于菲利普
发布于 2013-09-17 23:13:11
您想要拆分对象的相关部分,循环遍历,如果id已填充,则获取它作为数据。然后,您需要重新对其进行json_encode,以便在图表中使用:
$json = '{"col":["name","tot"],"grp":{"wkd":[["","0"],["id-1","0"],["id-2","0"],["id-3","0"],["id-4","0"],["id-5","0"],["id-6","0"],["id-7","0"]]},"Spec":{}}';
$decoded = json_decode($json);
$values = $decoded->grp->wkd;
$i = 0;
foreach($values as $k=>$arr) {
$id = $arr[0];
if(!empty($id)) {
$data[$i][] = $i;
$data[$i][] = $arr[1];
$cats[$i] = $id;
$i++;
}
}
$data = json_encode($data);
$cats = json_encode($cats);如果需要,这还包括一个构建类别数组的部分。如果不是,只需省略。
此例程的输出为:
$data:
[[0,"0"],[1,"0"],[2,"0"],[3,"0"],[4,"0"],[5,"0"],[6,"0"]] $cats:
["id-1","id-2","id-3","id-4","id-5","id-6","id-7"]https://stackoverflow.com/questions/18844746
复制相似问题