0

我正在尝试使用 jquery jChartFX 做一些图表。

当我使用 php 在同一个文件中创建数组时,它工作得很好,但是我喜欢从另一个文件中获取它,为此我尝试使用一些 json ..

数组看起来像这样( print_f($chartArray) )

Array ( 
    [0] => Array ( 
        [Procent rigtige] => 100 
        [Antal rigtige] => 4 
        [Antal mulige] => 4 
        [Date] => Januar-1970 ) 
    [1] => Array ( 
        [Procent rigtige] => 100 
        [Antal rigtige] => 4 
        [Antal mulige] => 4 
        [Date] => Februar-2014 ) 
)

当我尝试解码 json 时,它看起来像

Array ( 
    [0] => stdClass Object ( 
        [Procent rigtige] => 100 
        [Antal rigtige] => 4 
        [Antal mulige] => 4 
        [Date] => Januar-1970 ) 
    [1] => stdClass Object ( 
        [Procent rigtige] => 100 
        [Antal rigtige] => 4 
        [Antal mulige] => 4 
        [Date] => Februar-2014 ) 
 )

任何使用 jquery 的方式,我可以将 json 从我的 php 解析到 jquery 并仍然将其保留为数组而不是对象?

或者有什么方法可以让我更聪明地做到这一点?

我用

echo json_encode($chartArray);

在我的 getUserStats.php 并让他们即时使用 >

$.ajax({
       type: "GET",
       url: "getUserStats.php", data: {'type': 'monthly'},
       success: function(data) {
              chart1.setDataSource(JSON.parse(data)) 
       }
});
4

4 回答 4

2

这与 jQuery 或您正在做的任何其他事情无关,它看起来像是对json_decode.

您可能使用解码 JSON,$arr = json_decode($json_string)但您想要的是$arr = json_decode($json_string, true).

json_decode,的第二个参数assoc控制返回应该是关联数组还是您在表示中获得的对象。请参阅json_decode 文档

这是json_decode 到数组的可能副本

于 2014-02-25T13:33:36.510 回答
1

要在 jquery 中解析 json,可以使用jQuery.parseJSON()

在 PHP 中,使用json_encode()对数组进行编码。

在您的 test.php 中,添加header('Content-Type: application/json');

测试.php

// header('Content-Type: application/json'); //change
$chartArray = array( 
"0" => array( 
    "Procent rigtige" => 100, 
    "Antal rigtige" => 4, 
    "Antal mulige" => 4, 
    "Date" => "January-1970" 
    ), 
"1" => array ( 
    "Procent rigtige" => 100, 
    "Antal rigtige" => 4, 
    "Antal mulige" => 4, 
    "Date" => "February-2014" ) 
);

echo json_encode($chartArray);

AJAX

$.ajax({ 
  type: "GET", 
  url: "test.php", 
  data: {'type': 'monthly'}, 
 // dataType: "json",     // change
  success: function(data) { 
    chart1.setDataSource(data); //change // output 100
  } 
});
于 2014-02-25T13:41:28.657 回答
0

这可能会有所帮助:

$json = json_encode($yourArray);
于 2014-02-25T13:36:20.593 回答
0

如果你有一个make_json.php在你的根目录中命名的文件,你可以用 jQuery 做到这一点:

var json = $.getJSON('/make_json.php');

然后在你的make_json.php文件中你只需要回显一些 json。使用json_encode

// ... assuming your array is called $array
echo json_encode($array);

你不需要 jQuery 来做这件事,但它确实使它更简单。

于 2014-02-25T13:59:04.543 回答