将String转换为JSON,通过JQuery.Ajax获取

时间:2013-01-04 16:40:42

标签: php javascript ajax json split

我的php代码使用此链接生成类似的内容getPower.php?year=2012&country=tr

"Kasan":[[1,50]]
"Tasan":[[1,51],[2,52],[3,52]]
"Hasan":[[1,50]]
"Masan":[[1,51],[2,52],[3,52]]

使用此代码;

$row = $result->fetch_assoc();

echo json_encode($row['teamName']). ":" ;

putPowerbyTeam($db,$row['teamID'],$year); //End with echo "json_encode($returnArray);"  

echo "\n";

我正在使用此代码将它们转换为JavaScript对象;

$.ajax({type: "GET",
url: "getPower.php",
data: {year : "year", country : "country"},
success: function(JSONText) {

    var lines = JSONText.split('\n');

    $.each(lines,function(lineNo,line)
                    {
        var mainItems = line.split(':');
        chart.series[lineNo].name = jQuery.parseJSON(eval(mainItems[0]));
        chart.series[lineNo].setData(jQuery.parseJSON(eval(mainItems[1])), true);
    });

},
error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    alert(thrownError);
}

我是一个错误,说无法拆分null。所以,返回null但我不能确定这个javascrip代码的任何部分。

那么,为什么返回null? 我能做什么? 其余的都很好吗?

2 个答案:

答案 0 :(得分:2)

您可以像这样使用dataType

$.ajax({type: "GET",
url: "getPower.php",
data: {year : "year", country : "country"},
dataType: 'json',
success: function(JSONText) {

// do something

答案 1 :(得分:1)

不要尝试使用多个echojson_encode来构建JSON。使用一个大的关联数组然后echo json_encode(array)

这样的事情:

$array = array();

$teamName = $row['teamName'];

$array[$teamName] = putPowerbyTeam($db,$row['teamID'],$year); // Return the array instead of doing json_encode($returnArray);

echo json_encode(array);