0

私はあなたがみんなを助ける必要があります。ハイチャートが縦棒グラフにレンダリングできるものにjson応答を解析しようとしています。私は運がなくても検索して検索しました。

これは、チャートをレンダリングする前に 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 に対して投稿要求を送信します。

これは、コードの 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 文字列を試してみましたが、うまくいきませんでした。誰でもこれで私を助けることができますか?

よろしくフィリップ

4

1 に答える 1

1

オブジェクトの関連部分を分割し、ループスルーし、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);

これには、必要に応じて、カテゴリ配列を作成するセクションも含まれます。そうでない場合は、単に省略します。

このルーチンの出力は次のとおりです。

$データ:

[[0,"0"],[1,"0"],[2,"0"],[3,"0"],[4,"0"],[5,"0"],[6,"0"]] 

$猫:

["id-1","id-2","id-3","id-4","id-5","id-6","id-7"]
于 2013-09-17T15:13:10.877 に答える