ajax / json输出必须是其他格式

时间:2013-07-25 13:26:24

标签: php javascript ajax json

嗨,对于jquery地图,我得到了ajax的值。地图的格式必须是 var new_sample_data = {"af":"16.63","al":"11.58","dz":"158.97",...};

我用var new_sample_data = {"af":16.63,...};对它进行了测试,一切正常。但如果我把它接过杰森。它不起作用。我必须改变什么?

php testcode:

$sample_data[] = array("de","$de");

echo json_encode($sample_data);

javascript代码:

        $.ajax({ 
        type: "POST",                                    
        url: '../mail/assets/includes/geodata1.php',
        data: {datum1: Date.today().add({days: -29}).toString('yyyy-MM-dd'), datum2: Date.today().toString('yyyy-MM-dd')},
        dataType: 'json',
        success: function(data)
        {
        var new_sample_data = data;

在Firebug中,我看到响应为[["de","4"]]。但是我怎么能把它改成地图需要的格式呢?

3 个答案:

答案 0 :(得分:3)

您需要在PHP中创建关联数组

$sample_data = array("de"=>"$de");

然后对它进行编码应该会生成一个可以解析为JavaScript对象的正确JSON字符串。

要在JavaScript中查看new_sample_data的正确内容,请使用console.dir(new_sample_data);,它会列出对象的属性。

您可以在JavaScript中以这种方式访问​​新属性的值:

console.log(new_sample_data.de);

答案 1 :(得分:1)

你的php数组应该将de的索引设置为变量,如:

$sample_data[] = array("de" => "$de");

那个wasy $ sample_data [“de”]将=“$ de”;

答案 2 :(得分:0)

$ sample_data ['de'] = $ de;

它会按预期工作