我经常看到这条线,但找不到答案:
$.jgrid.useJSON = true;
目的是什么?
答案 0 :(得分:1)
通常我按以下方式包含jqGrid
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/themes/redmond/jquery-ui.css" />
<link rel="stylesheet" type="text/css" href="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.1/css/ui.jqgrid.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.1/js/i18n/grid.locale-en.js"></script>
<script type="text/javascript">
$.jgrid.no_legacy_api = true;
$.jgrid.useJSON = true;
</script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/jquery.jqGrid-4.4.1/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="http://www.ok-soft-gmbh.com/jqGrid/json2.js"></script>
首先应该包含定义grid.locale-en.js
的{{1}},然后您可以设置$.jgrid
和$.jgrid.useJSON
,$.jgrid.no_legacy_api
中后面的jqGrid实现将会使用设置。
选项jquery.jqGrid.min.js
将在$.jgrid.useJSON
中用于使用$.jgrid.parse
或JSON.parse
解析JSON字符串。
确切地说,方法eval
将不会频繁使用。大多数情况下有两个案例是相关的:
$.jgrid.parse
的值具有“字符串”类型且datastr
,则datastr
datatype: "jsonstring"
(与本地数据类型和高级搜索一起使用的过滤器参数)postData.filters
subgridtype: "json"
方法实现因此建议使用jqGridImport
,但它可能不会影响程序的性能,因为最重要的JSON解析案例通常由内部的jQuery进行(通常由$.jgrid.useJSON = true;
)而不是jqGrid代码。
答案 1 :(得分:0)
查看消息来源可以清理所有内容:
parse : function(jsonString) {
...
return ($.jgrid.useJSON===true && typeof (JSON) === 'object' && typeof (JSON.parse) === 'function')
? JSON.parse(js)
: eval('(' + js + ')');
}
所以基本上它说:
要解析JSON字符串,请尽可能使用JavaScript JSON
API代替eval