无法正确使用json响应

时间:2013-07-26 11:51:41

标签: javascript ajax json jquery

我使用datatables来显示数据,我想以一种很好的方式从我的服务器获取语言设置。问题是以这种方式格式化数据,我宁愿使用json格式尽可能少的修改。

我想用这个:

(作为我的数据表创建的参数,这是什么?数组?对象?json字符串?)

var oLanguage =    
{ 
    "oLanguage": {
        "sLengthMenu": "_MENU_ per page"
    }
};

我尝试使用此方法从服务器获取此数据:

$.getJSON( '/olan', function(data){
    oLanguage=data;
});

服务器代码:(PHP,SLIM

$app->get('/olan', function() use ($app, $lan){
    $oLanguage = array('oLanguage' => array('sLengthMenu' => '_MENU_ per page'));
    $response = $app->response();
    $response['Content-Type'] = 'application/json';
    $response->body(json_encode($oLanguage));
});

我能够遍历$ .getJSON方法中的数据并且所有信息都在那里,必须是格式/对象处理的东西。我还没有很好地理解我需要的对象类型,我可以声明它,但我不知道它是什么:)我希望它的某种json对象所以我可以很容易地得到它我试着去做。我可以使用$ .each迭代声明它,但它会很难看。

这是我在stackoverflow上的第一个问题,谢谢你帮助我

-------------------------答案(不能在前8小时发布)------------ ---

原来,

  

感谢Shinosha

,数据表的内置功能可以从服务器获取语言设置。通过创建这样的表:

$('#tableid').dataTable({
    "oLanguage": {
                "sUrl": "/olan"
        }
}); 

并编辑我的服务器代码:(更改$ oLanguage变量)

$app->get('/olan', function() use ($app, $lan){
    $oLanguage = array('sLengthMenu' => '_MENU_ per page');
    $response = $app->response();
    $response['Content-Type'] = 'application/json';
    $response->body(json_encode($oLanguage));
});

有效!

  

在Javascript中,[]表示数组,{}表示对象。您可以根据需要嵌套对象和数组。使用像jsonlint.com这样的json验证器   验证您的服务器响应。gvmani

oLanguage是具有属性oLanguage的对象,该属性是具有属性sLengthMenu的对象。 sLengthMenu的值为“ MENU 每页”

var oLanguage =    
{ 
    "oLanguage": {
        "sLengthMenu": "_MENU_ per page"
    }
};

1 个答案:

答案 0 :(得分:1)

在Javascript中,[]表示数组,{}表示对象。您可以根据需要嵌套对象和数组。使用像jsonlint.com这样的json验证器来验证服务器响应。