使用PHP正确解析Json

时间:2017-10-19 19:10:59

标签: javascript php json

我刚开始学习php,javascript和其他语言,也不是母语为英语的人,所以提前抱歉语法不好。

首先,我使用php:

从查询结果创建了一个.json文件
while ($row = pg_fetch_array($result)) {
    $torre = $row['torre'];
    $janeiro = $row['janeiro'];
    $fevereiro = $row['fevereiro'];
    $marco = $row['marco'];
    $abril = $row['abril'];
    $maio = $row['maio'];
    $junho = $row['junho'];
    $julho = $row['julho'];
    $agosto = $row['agosto'];
    $setembro = $row['setembro'];
    $outubro = $row['outubro'];
    $novembro = $row['novembro'];
    $dezembro = $row['dezembro'];
    $faturamento[] = array('torre' => $torre,
        'janeiro' => $janeiro,
        'fevereiro' => $fevereiro,
        'marco' => $marco,
        'abril' => $abril,
        'maio' => $maio,
        'junho' => $junho,
        'julho' => $julho,
        'agosto' => $agosto,
        'setembro' => $setembro,
        'outubto' => $outubro,
        'novembro' => $novembro,
        'dezembro' => $dezembro
    );
}

    $response['faturamento'] = $faturamento;
    $fp = fopen('./results.json', 'w+');
    fwrite($fp, json_encode($response));
    fclose($fp);
    pg_close($conn);
?>

.json读得很好,一切都应该如此:

     {
          "faturamento": [
            {
              "torre": "Database Admin",
              "janeiro": "R$ 0.00",
              "fevereiro": "R$ 0.00",
              "marco": "R$ 0.00",
              "abril": "R$ 0.00",
              "maio": "R$ 0.00",
              "junho": "R$ 0.00",
              "julho": "R$ 0.00",
              "agosto": "R$ 0.00",
              "setembro": "R$ 0.00",
              "outubto": "R$ 0.00",
              "novembro": "R$ 0.00",
              "dezembro": "R$ 0.00"
            }, 
    .
    .
    .
 ]
}

我在解析.json本身时遇到了麻烦

   <script>
            var obj;
            obj = JSON.parse(JSON.stringify($.getJSON("./results.json")));
            console.log(obj);
   </script>

基本上我需要把它变成一个js对象或数组,wahtever可以生成一个表(所以我可以稍后将它导出到pdf)并在图形上使用它(jpgraphs或fusioncharts)。

我尝试了多种方法,但总是得到&#34; undefined&#34;,只是默认的&#34;对象&#34;控制台输出或json的第1行第1行的意外字符,有时是第2行第2行。 我目前正在运行jquery-3.2.1。

1 个答案:

答案 0 :(得分:1)

如果您从PHP页面返回JSON,则只需:

$.getJSON("./results.json", function (data) {
    obj = data;
});