私はこの行をよく見ましたが、答えが見つかりません:
$.jgrid.useJSON = true;
目的は何ですか?
通常、私は次のように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
どの定義$.jgrid
を含めるかを含める必要があります。次に、を設定でき$.jgrid.useJSON
ます。$.jgrid.no_legacy_api
その後のjqGridの実装ではjquery.jqGrid.min.js
、設定が使用されます。
このオプションは、でまたはを使用してJSON文字列を解析するため$.jgrid.useJSON
に使用されます。$.jgrid.parse
JSON.parse
eval
正確には、この方法$.jgrid.parse
はそれほど頻繁には使用されません。ほとんどの場合、次の2つのケースが関係します。
datastr
の値がdatastr
「文字列」タイプであり、datatype: "jsonstring"
postData.filters
(ローカルデータ型および高度な検索に使用されるフィルターパラメーター)subgridtype: "json"
jqGridImport
メソッド実装の内部したがって、の使用をお勧めしますが、JSON解析の最も重要なケースは、通常、jqGridコードではなく$.jgrid.useJSON = true;
内部で(通常は)jQueryによって行われるため、プログラムのパフォーマンスには影響しません。jQuery.ajax
ソースを調べると、すべてがきれいになります:
parse : function(jsonString) {
...
return ($.jgrid.useJSON===true && typeof (JSON) === 'object' && typeof (JSON.parse) === 'function')
? JSON.parse(js)
: eval('(' + js + ')');
}
したがって、基本的には次のように述べています。
JSON 文字列を解析するJSON
には、可能であれば代わりに JavaScript APIを使用します。eval